我想調用類方法「func」,該方法應該打印一些東西,但它永遠不會被打印......沒有錯誤,只是沉默。代碼如下:爲什麼類方法沒有被調用?
class AnyClass():
atr1=0
atr2='text'
def func():
print ('Ran Func')
a = AnyClass()
a.func
我想調用類方法「func」,該方法應該打印一些東西,但它永遠不會被打印......沒有錯誤,只是沉默。代碼如下:爲什麼類方法沒有被調用?
class AnyClass():
atr1=0
atr2='text'
def func():
print ('Ran Func')
a = AnyClass()
a.func
a.func
只是方法對象的名稱。你必須撥它與()
。
>>> a.func
<bound method AnyClass.func of <__main__.AnyClass object at 0x0000000003506240>>
>>> a.func()
Ran Func
另外請注意,你必須定義它的時候,除非使用了@staticmethod
裝飾通過self
的方法作爲第一個參數。
def func(self):
print ('Ran Func')
a.func
只是對函數對象的引用。要調用它,你需要添加括號。
a.func()
函數應該有像a.func括號()
你不叫它:'a.func()' –
你沒有錯誤,因爲你引用存在,並沒有功能錯誤,但你不要求它通過不叫它來做任何事情 – Aaron
謝謝。看起來我也需要定義是否像:def func(self) – andrewlis