本文實例講述了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