我在一些代码上运行了 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
关于python - 将旧式类重写为新类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23278138/