Dans Python 2, le fait de ne pas hériter de object
créera une classe à l'ancienne, ce qui, entre autres effets, provoquera type
pour donner des résultats différents :
>>> class Foo: pass
...
>>> type(Foo())
<type 'instance'>
vs.
>>> class Bar(object): pass
...
>>> type(Bar())
<class '__main__.Bar'>
Les règles d'héritage multiple sont également les suivantes différents d'une manière que je n'essaierai même pas de résumer ici. Toute la bonne documentation que j'ai vue sur MI décrit des classes de style nouveau.
Enfin, les classes à l'ancienne ont disparu dans Python 3, et l'héritage à partir de object
est devenu implicite. Ainsi, préférez toujours les classes de style nouveau, sauf si vous avez besoin d'une compatibilité rétroactive avec un ancien logiciel.
3 votes
Y a-t-il une différence entre
class Foo():
yclass Foo:
? Comme je l'ai observé, les deux fonctionnent dans Python 3.0 votes
C'est bien répondu dans cette question : stackoverflow.com/questions/4015417/