當函數作爲默認參數的值時

#time_stamp.py
def handle_message(timestamp=time.time()):
    print timestamp

奇怪的結果如下,每次的timestamp都是一樣的,即使你等好長時間
>>> import timestamp
>>> timestamp.handle_message()
1377516566.87
>>> timestamp.handle_message()
1377516566.87
>>> timestamp.handle_message()
1377516566.87
>>> timestamp.handle_message()
1377516566.87

在import time_stamp.py時,timestamp=time.time()就已經被執行了,以後每次執行時,handle_message函數得到的timestamp值都是相同的值。

實驗結果:
在同一個類中,多次調用該函數,輸出的都是相同值。在同一個文件的不同類中,得到的是不同值。

猜測:在同一個類裏,import該文件時,time.time()只運行一次,在不同類裏time.time()分別執行一次。
是以類爲單位的,不是文件。


這是爲什麼呢?當函數作爲默認參數的值時
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章