我有類似的東西在我的Python代碼功能類典範
class A:
__mess = "Yeap!"
def doSome(self):
self.FN()
def FN(self):
pass
def myFN(self):
print self.__mess
b = A()
b.FN = myFN
b.doSome()
但是,這是行不通的。我錯在哪裏?
蟒2.6.5
UPD:我要重新定義方法(FN)僅對於一個示範性(B)。
UPD2:
import new
class A:
__mess = "Yeap!"
def doSome(self):
self.FN()
def FN(self):
pass
def myFN(self):
print self.__mess
b = A()
b.FN = new.instancemethod(myFN, b, A)
b.doSome()
不工作過。
Traceback (most recent call last):
File "", line 1, in
File "", line 4, in doSome
File "", line 2, in myFN AttributeError: A instance has no attribute '__mess'
看起來像一個無限循環,至少乍一看。你想達到什麼目的? – 2010-08-09 20:55:55
@townsean:他可能希望它無限循環,而不是以類型錯誤退出。 @Ximik:如果你得到一個錯誤,你應該總是發佈錯誤信息,而不是隻說「它不工作」。說出你希望發生的事情,然後會發生什麼。不要讓我們猜測問題出在哪裏。 – sth 2010-08-09 21:00:54
@townsean我正在寫一個守護進程,所以有無限循環。但在這個例子中,這真是多餘的東西。所以我改了一下帖子。 @好的,謝謝你的建議。我會。 – Ximik 2010-08-09 21:03:08