本文实例讲述了Python callable()函数用法。分享给大家供大家参考,具体如下:
python中的内建函数callable( )
,可以检查一个对象是否是可调用的 。
对于函数, 方法, lambda 函数式, 类, 以及实现了 _ _call_ _
方法的类实例, 它都返回 True.
1
2
3
4
5
6
|
>>> help ( callable ) Help on built - in function callable in module __builtin__: callable (...) callable ( object ) - > bool Return whether the object is callable (i.e., some kind of function). Note that classes are callable , as are instances with a __call__() method. |
1》函数是可调用的
1
2
3
4
5
|
>>> def add(x,y): ... return x + y ... >>> callable (add) True |
2》类和类内的方法是可调用的
1
2
3
4
5
6
7
8
9
10
11
|
>>> class C: ... def printf( self ): ... print 'This is class C!' ... >>> objC = C() >>> callable (C) #类是可调用的,调用它们, 就产生对应的类实例. True >>> callable (C.printf) True >>> callable (objC.printf) True |
3》实现了__call__()
方法的类实例是可调用的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
>>> class A: ... def printf( self ): ... print 'This is class A!' ... >>> objA = A() >>> callable (A) #类是可调用的,调用它们, 就产生对应的类实例. True >>> callable (objA) #类A没有实现__call__()方法,因此,类A的实例是不可调用的 False >>> class B: ... def __call__( self ): ... print 'This is class B!' ... >>> objB = B() >>> callable (B) #类是可调用的,调用它们, 就产生对应的类实例. True >>> callable (objB) #类B实现了__call__()方法,因此,类B实例是可调用的 True |
4》lambda表达式是可调用的
1
2
3
4
5
|
>>> f = lambda x,y:x + y >>> f( 2 , 3 ) 5 >>> callable (f) True |
其它的,像整数,字符串,列表,元组,字典等等,都是不可调用的,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
>>> callable ( 2 ) False >>> callable ( 'python' ) False >>> l = [ 1 , 2 , 3 ] >>> callable (l) False >>> t = ( 4 , 5 , 6 ) >>> callable (t) False >>> d = { 'a' : 1 , 'b' : 2 } >>> callable (d) False |
希望本文所述对大家Python程序设计有所帮助。
原文链接:http://blog.csdn.net/sxingming/article/details/51487986