為什麼 Python 3 中類可以直接呼叫例項方法,Python 2 中卻不行?

時間 2021-05-11 19:50:53

1樓:Manjusaka

@靈劍 老大已經說了

3.0 移除了 unbound method 的概念,直接呼叫函式就被當做乙個普通函式處理

詳情參見

What』s New In Python 3.0

2樓:曲奇

確實和直譯器的實現有關係。但我建議不要在這個方向上深究,鑽牛角尖無助於提公升程式設計功力。

Python 3的例子 A.temp(A) 是不正確的用法:

class

A():

deftemp

(self

):print

("type : {}"

.format

(type

(self

)))object_a=A

()object_a

.temp()A

.temp(A

)A.temp

(object_a

)呼叫了3次 temp(),結果是:

type :

type :

type :

如果用類來呼叫instance method,比如A.temp( obj ),應該傳入本類的object,但是傳入其它型別的,python也不檢查,這是危險之處。

例項方法就應該用例項來調,除此,都是自找麻煩。

在Python3中builtins模組與當前正在執行的主模組是什麼關係?

coder dh C Users LENOVO In globals Out get ipython exit quit i ii iii i1 globals module dict 6 dict,i7 globals dict 在第 1步中沒注釋的那行,我們可以看到 builtins 這可以解釋...

Python3中子執行緒呼叫input方法,把其他執行緒都阻塞了怎麼辦?

雖然是多執行緒,但是shell資源只有乙個,你換一種輸出方式試試你的input 卡住了accept的print,只能是輸入和輸出兩個成對出現 想不成對可以這樣,10個一卡.your code from queque import Queueq Queque 10 your code defclien...

python3中到底有幾類資料型別?

北京千鋒互聯科技有限公司 list 鍊錶,有序的專案,通過索引進行查詢,使用方括號 dict 字典,字典是一組鍵 key 和值 value 的組合,通過鍵 key 進行查詢,沒有順序,使用大括號 str 字串,用單或雙引號括起來表示字串 tuple 元組,元組將多樣的物件集合到一起,不能修改,通過索...