我看到在Python一些奇怪的但很有用雙下劃線的屬性,如:什麼是Python中的怪雙下劃線屬性(__attribute__)?
__module__
__init__
__str__
__class__
__repr__
...
他們似乎是一些特殊的屬性。他們的經典名稱是什麼?
我看到在Python一些奇怪的但很有用雙下劃線的屬性,如:什麼是Python中的怪雙下劃線屬性(__attribute__)?
__module__
__init__
__str__
__class__
__repr__
...
他們似乎是一些特殊的屬性。他們的經典名稱是什麼?
他們被稱爲特殊的方法。
Python是一種鴨子類型化語言和多語言的 面向用戶的功能在這些特殊的方法來實現「協議」實施 。
參見:http://docs.python.org/release/2.5.2/ref/specialnames.html
作爲例:
要模仿你實現你的類以下兩種方法任意對象的比較:
__lt__
__eq__
每"Naming conventions" section of PEP-8
__double_leading_and_trailing_underscore__
: 「神奇」 的對象,或者住在用戶控制的命名空間 屬性。例如。__init__
,__import__
或__file__
。不要發明這樣的名字;只有使用它們作爲 記錄。
人是PEP必須是老了!我認爲Pythonistas的50%的人稱他們特殊的方法以外的其他50%的魔術方法:) –
燁13歲這一年!使用「約定」+1。 –
@JamesMills:對,原來是老了,但它保持最新。 '最後修改星期五,2013年11月1日.' – vartec
+1「Duck Typed」 – That1Guy
+1「Duck Typed」,非常豐富!謝謝! – smwikipedia