AFAIK
len在这方面很特殊,并且具有历史渊源。
这是FAQ中的报价:
为什么Python使用方法来实现某些功能(例如list.index()),却使用其他方法的功能(例如len(list))?
主要原因是历史。函数用于那些对一组类型通用的 *** 作,即使对于根本没有方法的对象(例如,元组),这些 *** 作也可以使用。使用Python的功能部件(map(),apply()等)时,具有可以轻松应用于对象的不定形集合的函数也很方便。
实际上,将len(),max(),min()实现为内置函数实际上比将它们实现为每种类型的方法要少。人们可能会质疑个别情况,但这是Python的一部分,现在进行这样的基本更改为时已晚。必须保留功能以避免大量代码损坏。
其他“魔术方法”(在Python民俗中实际上称为 特殊方法 )很有道理,其他语言中也存在类似的功能。它们通常用于使用特殊语法时隐式调用的代码。
例如:
- 重载运算符(存在于C ++和其他语言中)
- 构造函数/析构函数
- 用于访问属性的挂钩
- 元编程工具
等等…
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)