python中 __call__
在python中,函式其實是乙個物件:
f = absf.__name__
『abs』
f(-123)
123
由於 f 可以被呼叫,所以,f 被稱為可呼叫物件。
所有的函式都是可呼叫物件。
乙個類例項也可以變成乙個可呼叫物件,只需要實現乙個特殊方法__call__()。
我們把 person 類變成乙個可呼叫物件:
class person(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
def __call__(self, friend):
print 'my name is %s...' % self.name
print 'my friend is %s...' % friend
現在可以對 person 例項直接呼叫:
p = person(『bob』, 『male』)p(『tim』)
my name is bob…
my friend is tim…
單看 p(『tim』) 你無法確定 p 是乙個函式還是乙個類例項,所以,在python中,函式也是物件,物件和函式的區別並不顯著。
Python基礎篇 python之if條件
python的if語句是類似的其他語言。if語句包含乙個邏輯表示式,使用哪些資料進行了比較,比較的結果的基礎上作出決定。if語句的語法是 if expression statement s 這裡的if語句,條件是第一次評估。如果條件為真,那就是,如果其值為非零,則執行語句塊 s 否則,下乙個語句之後...
Python基礎篇之for迴圈
python之 for迴圈 list或tuple可以表示乙個有序集合。如果我們想依次訪問乙個list中的每乙個元素呢?比如 list l adam lisa bart print l 0 print l 1 print l 2 如果list只包含幾個元素,這樣寫還行,如果list包含1萬個元素,我們...
Python基礎篇之dict
我們已經知道,list 和 tuple 可以用來表示順序集合,例如,班裡同學的名字 adam lisa bart 或者考試的成績列表 95,85,59 但是,要根據名字找到對應的成績,用兩個 list 表示就不方便。如果把名字和分數關聯起來,組成類似的查詢表 adam 95 lisa 85 bart...