2012-06-18 32 views
0
class A: 
    pass 

def b(self): 
    print('b') 

A.b = b 

a = A() 

此時AB是一個綁定方法對象,它是偉大的,但如果我說:通過增加更多的方法延伸的蟒蛇類崗位定義

a.b() 

我得到一個錯誤,指出B需要在至少有一個參數。

我的問題是: 1.如何將方法添加到現有類中?和 2.有沒有關於這類事情的文件記錄的「最佳實踐」?

+1

確切的代碼適用於我。你能顯示錯誤的細節嗎? – pepr

回答

1

這應該正常工作(見:http://ideone.com/WWPg8

Python的功能描述,並轉換爲分別類和實例訪問時綁定和綁定方法;請參閱http://docs.python.org/howto/descriptor.html

只要你清楚你正在做的事情並充分記錄它,「猴子修補」類和實例就被認爲是完全正常的。

+0

感謝您的幫助。我認爲我在測試該功能時在某處的代碼中出現了拼寫錯誤 – Sheena