In Python 2, non eredita da object
creerà una classe di vecchio stile, che, tra gli altri effetti, fa sì che type
per dare risultati diversi:
>>> class Foo: pass
...
>>> type(Foo())
<type 'instance'>
vs.
>>> class Bar(object): pass
...
>>> type(Bar())
<class '__main__.Bar'>
anche le regole per l'ereditarietà multipla sono different in modi che non cercherò nemmeno di riassumere qui. Tutta la buona documentazione che ho visto su MI descrive classi di nuovo stile.
Infine, le classi vecchio stile sono scomparse in Python 3 e l'ereditarietà da object
è diventata implicita. Quindi, preferisci sempre le nuove classi di stile a meno che non ti serva una compatibilità con i vecchi software.
fonte
2013-03-13 00:31:29
Is c'è una differenza tra 'classe Foo():' e 'classe Foo:'? Come osservo, entrambi funzionano in Python 3. – Wolf