在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
应该很快发布。