2016-10-04 92 views
-3

我想調用類方法「func」,該方法應該打印一些東西,但它永遠不會被打印......沒有錯誤,只是沉默。代碼如下:爲什麼類方法沒有被調用?

class AnyClass(): 
    atr1=0 
    atr2='text' 

    def func(): 
     print ('Ran Func') 

a = AnyClass() 
a.func 
+0

你不叫它:'a.func()' –

+0

你沒有錯誤,因爲你引用存在,並沒有功能錯誤,但你不要求它通過不叫它來做任何事情 – Aaron

+0

謝謝。看起來我也需要定義是否像:def func(self) – andrewlis

回答

6

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') 
2

a.func只是對函數對象的引用。要調用它,你需要添加括號。

a.func() 
0

函數應該有像a.func括號()

相關問題