Python 3.x 的超级魔法:解开谜团
Python 3.x 在其 super() 方法中引入了令人惊讶的转折,允许无参数调用。这种看似无害的变化在幕后却带来了重大的后果和内在的魔力。
揭开魔力
为了维护 DRY 原则,新的 super() 行为绕过了显式类命名。它有一个特殊的 class 单元,用于检索原始类对象,避免了困扰之前超级方法的重新绑定的陷阱。
Magic 的后果
不幸的是,这个魔法有一个缺点。将 super() 名称重新绑定到不同的变量(例如 super_)可能会破坏其功能。发生这种情况的原因是,仅当在方法中引用 super 或 class 时才会创建单元格。
实际陷阱
此行为可能会带来风险毫无戒心的程序员:
超越 Super()
有趣的是,super() 并不是唯一受重新绑定问题影响的 Pythonic 实体。其他示例包括:
对开发人员的影响
虽然 super() 的魔力很有用,但仍需谨慎。了解其复杂性有助于防止运行时错误。使用重新绑定时,程序员应考虑显式引用 class 或利用替代的 super() 调用方法。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3