将旧式类重写为新类

时间:2014-04-24 19:30:28

标签: python class

我在某些代码上运行了pylint,并对旧式课程提出了投诉。

我可以通过简单地改变:

来纠正这个问题
class MyClass:

为:

class MyClass(object):

还是有更多的参与?

1 个答案:

答案 0 :(得分:2)

在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