Découverte que je viens de faire à l'instant : il est possible d'écrire du code dans le corps d'une classe python, et ce code est exécuté automatiquement au chargement du module.
Exemple :
import datetime
class MyClass:
if datetime.datetime.now().isoweekday() == 5:
current_day = "trolldi"
for i in range(10):
print("TODAY IS", current_day, "!!!!!!!!")
else:
current_day = "pas trolldi"
print("current_day:", MyClass.current_day)
$ python3 bla.py
TODAY IS trolldi !!!!!!!!
TODAY IS trolldi !!!!!!!!
TODAY IS trolldi !!!!!!!!
TODAY IS trolldi !!!!!!!!
TODAY IS trolldi !!!!!!!!
TODAY IS trolldi !!!!!!!!
TODAY IS trolldi !!!!!!!!
TODAY IS trolldi !!!!!!!!
TODAY IS trolldi !!!!!!!!
TODAY IS trolldi !!!!!!!!
current_day: trolldi
Voila, c'est tout. Bisous et bon weekend à tous !
# Petite bizarrerie à noter
Posté par jeanas (site web personnel, Mastodon) . Évalué à 2 (+1/-0). Dernière modification le 11 octobre 2024 à 18:41.
J'ai toujours trouvé ça déconcertant, mais il paraît que c'est intentionnel.
[^] # Re: Petite bizarrerie à noter
Posté par Pol' uX (site web personnel) . Évalué à 3 (+1/-0).
Oui mais :
Adhérer à l'April, ça vous tente ?
# hello
Posté par guitou . Évalué à 1 (+0/-0).
Pour le
x is not defined
, python est quand meme pas trop mal fait, il te suggere comment corriger le pbSinon, rapport a ces variables de classe, je trouve pas toujours ca tres clair, par exemple:
```
class MyClass:
my_class_var = "osef"
a = MyClass()
print(a.my_class_var)
b = MyClass()
b.my_class_var = "osef encore"
print(b.my_class_var)
print(a.my_class_var)
class MyOtherClass:
my_class_var = []
z = MyOtherClass()
z.my_class_var.append('a')
print(z.my_class_var)
y = MyOtherClass()
y.my_class_var.append('b')
print(y.my_class_var)
print(z.my_class_var)
```
$ python3 .py
osef
osef encore
osef
['a']
['a', 'b']
['a', 'b']
Avec un
string
, on pourrait croire que ca se comporte exactement comme une variable d'instance, mais avec unelist
, on constate bien que non. Ca me perturbe toujours autant!++
Gi)
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.