Fonctions d'imbrication à utiliser lorsque vous l'utilisez plusieurs fois mais que vous n'avez pas besoin de l'utiliser comme méthode pour sortir.
def hoge():
def fuga():
pass
Je me suis demandé quelle serait la gestion des variables lors de son utilisation, alors je l'ai vérifié.
def hoge():
x = 1
def fuga():
x = 3
fuga()
print(x)
Résultat d'exécution
hoge()
1
Les variables locales semblent être traitées comme des variables séparées. Naturellement naturel.
Cependant, cela peut être changé avec la déclaration nonlocal
.
def hoge():
x = 1
def fuga():
nonlocal x
x = 3
fuga()
print(x)
Résultat d'exécution
hoge()
3
class Sample:
def __init__(self):
self.hoge = None
def hoge():
smp = Sample()
smp.hoge = "abcde"
def fuga():
smp.hoge = "fghijk"
fuga()
print(amp.__dict__)
Résultat d'exécution
hoge()
{'hoge': 'fghijk'}
Je me demande si les variables de classe seront traitées globalement.
Vous pouvez l'utiliser pour actualiser votre code lorsque vous souhaitez mettre une autre valeur dans une variable de classe en fonction de la condition
class Sample():
def __init__(self):
self.hoge = None
self.fuga = None
def hoge(list):
smp = Sample()
def set_val(val1, val2):
smp.hoge = val1
smp.fuga = val2
if len(list) == 1:
set_val(list[0], None)
else:
set_val(list[0], list[1])
print(smp.__dict__)
Résultat d'exécution
hoge(['aaaa', 'bbbb'])
{'hoge': 'aaaa', 'fuga': 'bbbb'}
hoge(['cccc'])
{'hoge': 'cccc', 'fuga': None}
Je ne sais pas s'il y a une utilité pour ça!
Recommended Posts