0
class A:
pass
def b(self):
print('b')
A.b = b
a = A()
此時AB是一個綁定方法對象,它是偉大的,但如果我說:通過增加更多的方法延伸的蟒蛇類崗位定義
a.b()
我得到一個錯誤,指出B需要在至少有一個參數。
我的問題是: 1.如何將方法添加到現有類中?和 2.有沒有關於這類事情的文件記錄的「最佳實踐」?
class A:
pass
def b(self):
print('b')
A.b = b
a = A()
此時AB是一個綁定方法對象,它是偉大的,但如果我說:通過增加更多的方法延伸的蟒蛇類崗位定義
a.b()
我得到一個錯誤,指出B需要在至少有一個參數。
我的問題是: 1.如何將方法添加到現有類中?和 2.有沒有關於這類事情的文件記錄的「最佳實踐」?
這應該正常工作(見:http://ideone.com/WWPg8)
Python的功能描述,並轉換爲分別類和實例訪問時綁定和綁定方法;請參閱http://docs.python.org/howto/descriptor.html
只要你清楚你正在做的事情並充分記錄它,「猴子修補」類和實例就被認爲是完全正常的。
感謝您的幫助。我認爲我在測試該功能時在某處的代碼中出現了拼寫錯誤 – Sheena
確切的代碼適用於我。你能顯示錯誤的細節嗎? – pepr