看板 Python 關於我們 聯絡資訊
為何method一定要將self寫進宣告中呢? 實際在呼叫的時候不是也用不到嗎? 搞不太懂這個設計,總覺得很多餘...... 希望有人能為我解惑, 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.64.139.91
areyo:你是在class看到的吧,有點等同於this 09/06 11:04
shaopin:你寫的時候雖然沒有, 但底層還是有傳該instance給那functi 09/06 12:55
shaopin:當參數, 算是一種識別instance的方法.. 09/06 12:55
curist:我只知道可以取別的名字,不一定要叫self 09/06 17:10
Landau:可是為何要寫出來呢? C++中也不用特別把this當參數啊 09/07 03:03
hilorrk:歷史因素 09/07 04:22
DEATHX:版上前輩說過了:self明確寫出是Python的風格 09/07 08:48
DEATHX:「Explicit is better than implicit.」 09/07 08:49
juiz:不是歷史因素;it's explicity,照慣例也一定要取名作 self 09/07 08:52
juiz:classmethod 的第一個引數也必須名為 cls 09/07 08:52
juiz:staticmethod 則不可以有 self/cls 09/07 08:53
hilorrk:其實explicit self的問題很多人在討論 希望取消的人也想了 09/07 18:17
hilorrk:許多解決辦法 但越完美的解決辦法需要越複雜的更動... 09/07 18:17
hilorrk:但並不是"必需如此" 所以我基本認為算是歷史因素 09/07 18:18
juiz:self/cls 的使用確實是有歷史成分在的 09/07 20:06
juiz:但若僅僅只用歷史因素四字說明則是過於簡化了 09/07 20:07