簡體   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