为什么Python使用“魔术方法”?

为什么Python使用“魔术方法”?,第1张

为什么Python使用“魔术方法”?

AFAIK

len
在这方面很特殊,并且具有历史渊源。

这是FAQ中的报价:

为什么Python使用方法来实现某些功能(例如list.index()),却使用其他方法的功能(例如len(list))?

主要原因是历史。函数用于那些对一组类型通用的 *** 作,即使对于根本没有方法的对象(例如,元组),这些 *** 作也可以使用。使用Python的功能部件(map(),apply()等)时,具有可以轻松应用于对象的不定形集合的函数也很方便。

实际上,将len(),max(),min()实现为内置函数实际上比将它们实现为每种类型的方法要少。人们可能会质疑个别情况,但这是Python的一部分,现在进行这样的基本更改为时已晚。必须保留功能以避免大量代码损坏。

其他“魔术方法”(在Python民俗中实际上称为 特殊方法 )很有道理,其他语言中也存在类似的功能。它们通常用于使用特殊语法时隐式调用的代码。

例如:

  • 重载运算符(存在于C ++和其他语言中)
  • 构造函数/析构函数
  • 用于访问属性的挂钩
  • 元编程工具

等等…



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5646710.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存