Verschachtelungsfunktionen, die verwendet werden, wenn Sie sie mehrmals verwenden, aber nicht als Methode zum Ausgehen verwenden müssen.
def hoge():
def fuga():
pass
Ich habe mich gefragt, wie mit Variablen umgegangen werden soll, also habe ich es überprüft.
def hoge():
x = 1
def fuga():
x = 3
fuga()
print(x)
Ausführungsergebnis
hoge()
1
Lokale Variablen scheinen als separate Variablen behandelt zu werden. Natürlich natürlich. Dies kann jedoch mit der "nichtlokalen" Erklärung geändert werden.
def hoge():
x = 1
def fuga():
nonlocal x
x = 3
fuga()
print(x)
Ausführungsergebnis
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__)
Ausführungsergebnis
hoge()
{'hoge': 'fghijk'}
Ich frage mich, ob Klassenvariablen global behandelt werden.
Sie können dies verwenden, um Ihren Code zu aktualisieren, wenn Sie abhängig von der Bedingung einen anderen Wert in eine Klassenvariable einfügen möchten
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__)
Ausführungsergebnis
hoge(['aaaa', 'bbbb'])
{'hoge': 'aaaa', 'fuga': 'bbbb'}
hoge(['cccc'])
{'hoge': 'cccc', 'fuga': None}
Ich weiß nicht, ob es irgendeinen Sinn dafür gibt!
Recommended Posts