2016-10-04 121 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括号()

相关问题