[Python] Qui est exécuté en premier, variable de classe ou __init__?

Je pensais que j'écrivais du python. "Laquelle de la variable de classe et \ _ \ _ init \ _ \ _ est exécutée en premier ???" Je ne creuse pas profondément. C'est une petite histoire. C'est un gaspillage à lire jusqu'à la fin, donc j'écrirai d'abord le résultat.

résultat

Les variables de classe sont traitées en premier, suivies de \ _ \ _ init \ _ \ _.

Vérification

Écrivez print () dans la variable de classe et \ _ \ _ init \ _ \ _ respectivement. Vérifiez lequel est affiché en premier à partir du résultat de l'exécution.

test.py


class main:

    s = 'Les variables de classe ont été définies.'
    print(s)

    def __init__(self):
        s = '__init__A été exécuté.'
        print(s)

if __name__ == '__main__':
    main()

résultat


$ python test.py
Les variables de classe ont été définies.
__init__A été exécuté.

La variable de classe est exécutée en premier, puis \ _ \ _ init \ _ \ _ est exécuté. Définissons maintenant une variable de classe sous \ _ \ _ init \ _ \ _. Le code se salit, mais c'est une vérification ...

test.py


class main:

    def __init__(self):
        s = '__init__A été exécuté.'
        print(s)

    s = 'Les variables de classe ont été définies.'
    print(s)


if __name__ == '__main__':
    main()

résultat


$ python test.py
Les variables de classe ont été définies.
__init__A été exécuté.

Le résultat n'a pas changé. Il s'avère que tout ce que vous écrivez ci-dessus est toujours exécuté à partir de la variable de classe. C'est tout.

Postscript

Dans les commentaires

Essayez de l'exécuter sans appeler main (). Ce sera un résultat intéressant.

Quand je l'ai essayé, seule la partie variable de classe était exécutée. Veuillez vous référer aux commentaires pour une explication facile à comprendre. Vous pouvez voir que vous pouvez faire référence au traitement dans la classe et à la méthode sans exécuter la classe. Je ne peux pas sortir d'un débutant pour le reste de ma vie. Mais c'est amusant.

Recommended Posts

[Python] Qui est exécuté en premier, variable de classe ou __init__?
Pourquoi le premier argument de la classe [Python] est-il self?
Quel est le meilleur, PyPy ou Python?
Qu'est-ce qui est le plus rapide, le mélange Python ou l'échantillon?
Quel est le meilleur, l'entrée standard de python recevant input () ou sys.stdin?
Quel est l'outil de visualisation Python le plus populaire après tout?
__init__ appelé par wxPython ou Tkinter était un appel __init__ de la classe héritée en Python
[Python] Est-ce que l'objet nul mais non vide est Vrai ou Chute?
[Les débutants sont inquiets] Quel est le meilleur, Ruby, PHP ou Python?
First Python 3 ~ Le début de la répétition ~
[Python] Qu'est-ce que @? (À propos des décorateurs)
[python] Quelle est la clé triée?
Voir python pour la première fois
Examiner la classe d'un objet avec python
À quoi sert le trait de soulignement Python (_)?
Déterminer le système d'exploitation exécutant Python
La première étape de Python Matplotlib
Si Python est inférieur à 3,3, utilisez l'option -R ou la variable d'environnement PYTHONHASHSEED = "random" pour les contre-mesures DoS.
Python ne génère pas d'erreurs ou de sortie simplement parce que le retrait est mal aligné
[Python] Détermine si un point de coordonnée est à l'intérieur ou à l'extérieur du polygone
Générer une collection de première classe en Python
Jouez en continu le MV du premier Python Skusta
Prenez la somme logique de List en Python (fonction zip)
Où est écrit le processus d'instanciation python?
Qu'est-ce que "mahjong" dans la bibliothèque Python? ??
MongoDB avec Python pour la première fois
[python] [meta] Le type de python est-il un type?
[Python] Nombre de chaînes entières de longueur n pour lesquelles la somme est m