直观上,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