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.
Les variables de classe sont traitées en premier, suivies de \ _ \ _ init \ _ \ _.
É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.
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