我可以動態屬性添加到一個新式類(一個從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