我可以动态属性添加到一个新式类(一个从object
派生)的实例?的Python:动态属性添加到新式类/ OBJ
详细信息:
我正在使用sqlite3.Connection的实例。简单地扩展类不是一种选择,因为我没有通过调用构造函数来获取实例;我打电话给sqlite3.connect()
。
建立一个包装不救我多少散装我写的代码。
的Python 2.7.1
编辑
正确答案全部。但我仍然没有达到我的目标; sqlite3.Connection栏的实例我尝试以下列方式设置属性(就像object
本身的实例一样)。我总是得到一个AttributeError:
> conn = sqlite3.connect([filepath])
> conn.a = 'foo'
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
conn.a = 'foo'
AttributeError: 'object' object has no attribute 'a'
> conn.__setattr__('a','foo')
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
conn.__setattr__('a','foo')
AttributeError: 'object' object has no attribute 'a'
帮助?
你可以检查实际的__dict__来找出sqlite3正在使用什么。但是这可能是一个C例程,在这种情况下,你将被迫以某种方式包装它。 – 2011-05-21 16:35:28
+1。即使是对象。__setattr __(conn,'a','foo')'引发AttributeError。有趣的问题! – EOL 2011-05-21 16:44:01