繁体   English   中英

将旧式类重写为新类

[英]Rewrite old-style classes as new ones

我在一些代码上运行 pylint 并收到了关于旧式类的抱怨。

我可以通过简单地改变来纠正这个问题:

class MyClass:

到:

class MyClass(object):

或者还有什么更重要的事情?

在 Python 2 中,编写

class MyClass(object):

就足够了。 或者你切换到 Python 3,其中

class MyClass:

就好了。

继承列表通常会给出一个基类列表(请参阅自定义类创建以获得更高级的用途),因此列表中的每一项都应评估为允许子类化的类对象。 没有继承列表的类默认从基类对象继承; 因此

class Foo:
    pass

相当于

class Foo(object):
    pass

另见: https : //docs.python.org/3/reference/compound_stmts.html#class

此外,正如@Kevin 在评论中指出的那样,方法解析并非微不足道,在使用多重继承时可能会导致意外行为: http : //python-history.blogspot.com/2010/06/method-resolution-order.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM