如何避免在Python 3中对继承类的构造函数的佩尔特警告



在python 3中,我有以下代码:

class A:
    def __init__(self):
        pass
class B(A):
    def __init__(self):
        super().__init__()

这会产生leint警告:

  • 定义的老式类。(老式级)
  • 在旧样式班(超级老年级)上使用超级

在我的理解中,在python 3中,不再存在旧式的类,并且此代码还可以。

即使我与此代码明确使用新样式类

class A(object):
    def __init__(self):
        pass
class B(A):
    def __init__(self):
        super().__init__()

我得到了皮层警告,因为在python 3:

中呼叫父构建器的语法不同。
  • super()(缺少super-argument)丢失参数

根据此列表'丢失参数to super()'具有代码e1004:。如果仅禁用一种警告,则可以在文件开头添加此行:

# pylint: disable=E1004

或者您可以尝试以这样的方式调用super()

class B(A):
  def __init__(self):
    super(B, self).__init__()

这是由于Astroid中的一个错误,它并没有将所有类别视为https://bitbucket.org/logilab/astroid/commits/6869fb2acb2acb9f58f58f58f58f58f58f58f58f58f58f58f58f58f58f58f58f58f58f5858585858585858585 ccu之前,并不考虑所有类别w/python 3

应该很快发布。

相关内容

最新更新