Lorsque je crée un module avec son seul contenu:
class Classname(randomobject):
pass
Et j'essaie d'exécuter le fichier .py du module que l'interprète indique que randomobject
n'est pas défini.
Mais quand je fais:
class Classname(object):
pass
Le module fonctionne juste bien. Donc, si object
n'est pas un mot clé, alors qu'est-ce que c'est?
object
est une variable (globale). Par défaut, il est lié à une classe intégrée qui est la racine de la hiérarchie de type.
(Cela conduit à la propriété intéressante que vous pouvez prendre tout type intégré et utiliser le __bases__
Propriété pour atteindre le type appelé objet).
Tout ce qui est intégré qui n'est pas un mot clé ou un opérateur n'est un identifiant.
object
est un identifiant qui fait référence à un type intégré.
Contrairement à de nombreuses autres langues, il n'y a pas de types primitifs dans Python. Tout est un objet, y compris tous les types de données.
Je ne sais pas pourquoi vous êtes attendu hériter de randomobject
pour travailler.
Les trois déclarations de classe suivantes sont identiques dans Python 3
class Classname(object):
pass
class Classname():
pass
class Classname:
pass
Eh bien, il y aura mineur différences , mais pas fondamentalement important car la classe d'objet est la base de tous.
Si vous envisagez d'écrire Python Code Agnostic (Python2 et Python3 Agnostic), vous pouvez utiliser la première déclaration.
object
est la classe de base à partir de laquelle vous héritez lors de la création d'une classe de style neuve dans Python 2.