直觀上,List
類應該實現一個屬性或方法來檢索實例的長度。幸運的是Python'lists有一個叫做__len__
的隱藏方法。不幸的是,這種方法並不是直接使用。我應該使用一個外部函數來爲我讀取隱藏的方法。Python中foo .__ x__和x(foo)的原因(即len和__len__)
這就像我需要問別人打開冰箱爲我搶啤酒。啤酒在冰箱裏,我有雙手,我應該可以自己做。
從概念上講,這種方法似乎很好奇。爲什麼不有一個屬性(而不是一個方法)來獲取列表的長度。
換句話說,我寧願使用foo.len
而不是foo.len()
或foo.__len__
。 len(foo)
對我來說顯得更加古怪。
對此實現有解釋嗎?
這個answer部分回答了我的問題,但我的沮喪依然存在。
[This](http://effbot.org/pyfaq/why-does-python-use-methods-for-some-functionality-eg-list-index-but-functions-for-other-eg-len -list.htm)可能值得閱讀。 –
以及[this one](http://lucumr.pocoo.org/2011/7/9/python-and-pola/)(花費一些時間再次查找)。 –
@MathiasEttinger這兩篇文章回答了我的問題。我理解背後的哲學,我必須處理它。 – nowox