当前位置:  开发笔记 > 编程语言 > 正文

为什么在使用super()时我必须指定自己的类,有没有办法解决它?

如何解决《为什么在使用super()时我必须指定自己的类,有没有办法解决它?》经验,为你挑选了2个好方法。

使用Python super()进行方法链接时,必须明确指定自己的类,例如:

class MyDecorator(Decorator):
    def decorate(self):
        super(MyDecorator, self).decorate()

我必须指定我的类的名称MyDecorator作为参数super().这不是DRY.当我重命名我的课程时,我将不得不重命名它两次.为什么这样实现?有没有办法避免必须两次(或更多)写出类的名称?



1> nosklo..:

你的愿望成真:

只需使用python 3.0.在它你只是使用super()它确实super(ThisClass, self).

文档在这里.文档中的代码示例:

class C(B):
    def method(self, arg):
        super().method(arg)    
        # This does the same thing as: super(C, self).method(arg)



2> Peter Rowell..:

BDFL同意.见Pep 367 - 新超级 2.6和PEP 3135 - 新超级 3.0.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有