Les classes en Python sont aussi des objets

Avant de comprendre les métaclasses, comprenons d'abord plus en détail les classes en Python. Dans la plupart des langages de programmation, une classe est un ensemble de segments de code utilisés pour décrire comment générer un objet. C'est la même chose en Python.

class ObjectCreator(object):
    pass
mObject = ObjectCreator()
print(mObject)

Résultat de sortie :

<__main__.ObjectCreator object at 0x00000000023EE048>

Cependant, les classes en Python sont différentes de la plupart des langages de programmation. En Python, une classe peut être comprise comme un objet. Oui, il n’y a pas d’erreur ici, c’est l’objet.

Pourquoi ?

Car tant que la classe de mots-clés est utilisée, l'interpréteur Python créera un objet lors de l'exécution.

Par exemple :

class ObjectCreator(object):
    pass

Lorsque le programme exécute ce code, un objet sera créé dans la mémoire et le nom est ObjectCreator. Cet objet (classe) lui-même a la capacité de créer des objets (instances de classe), et c'est pourquoi c'est une classe. Cependant, son essence est toujours un objet, nous pouvons donc y effectuer les opérations suivantes :

class ObjectCreator(object):
    pass
def echo(ob):
    print(ob)
mObject = ObjectCreator()
print(mObject)
# 可以直接打印一个类,因为它其实也是一个对象
print(ObjectCreator)
# 可以直接把一个类作为参数传给函数(注意这里是类,是没有实例化的)
echo(ObjectCreator)
# 也可以直接把类赋值给一个变量
objectCreator = ObjectCreator
print(objectCreator)

Le résultat en sortie est le suivant :

<__main__.ObjectCreator object at 0x000000000240E358>
<class '__main__.ObjectCreator'>
<class '__main__.ObjectCreator'>
<class '__main__.ObjectCreator'>
Formation continue
  • Recommandations de cours
  • Téléchargement du didacticiel