0%
简介
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
''' Python中那些能够在后面加()来调用执行的对象,被称为可调用对象。可调用对象包括自定义函数、Python内置函数、实例对象和实例方法等。
call()方法是Python中一个很特殊的方法。凡是可调用对象,都可以通过调用__call__()方法来调用该对象。如果类中定义了__call__()方法,那么该类的实例对象也将成为可调用对象。该对象被调用时,将执行__call__()方法中的代码。
下面我们分别对这几种可调用对象执行__call__()方法。
把原本不可以被调用的类,变得也可以调用了,而且内置的__call__()会运行。 ''' def test(): print("Function test() is called")
print("Function test() is callable: %s" % callable(test)) test() test.__call__()
print("Build-in function int() is callable: %s" % callable(int)) print(int(3)) print(int.__call__(3))
class Person(object): pass
c = Person() print("Object c is callable: %s" % callable(c))
class Person(object):
def __call__(self): print("Method __call__() is called")
d = Person() print("Object d is callable: %s" % callable(d)) d()
|