将旧式类重写为新式类
我在一些代码上运行了pylint,结果它给我提了个意见,说我的代码用了旧式类。
我可以通过简单地把:
class MyClass:
改成:
class MyClass(object):
来解决这个问题吗?
还是说这其中还有其他更复杂的事情需要处理?
1 个回答
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