如何解决在没有直接父级的情况下使用super
| 这是对super()的合法使用吗?class A(object):
def method(self,arg):
pass
class B(A):
def method(self,arg):
super(B,self).method(arg)
class C(B):
def method(self,self).method(arg)
谢谢。
解决方法
它可以工作,但是可能会使任何试图读取您的代码的人(包括您在内,除非您特别记得,否则都会使它困惑)。不要忘记,如果要从特定的父类调用方法,则可以执行以下操作:
A.method(self,arg)
,好吧,“合法”一词在这里是个可疑的词。该代码最终将调用A.method
,因为搜索中排除了赋予super
的类型。至少可以这么说,我会认为这种ѭ3fla的用法,因为它将跳过继承层次结构的一个成员(看似危险),这与我作为开发人员的期望不一致。由于已经鼓励ѭ3的用户保持一致性,因此我建议您反对这种做法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。