Rumah > Soal Jawab > teks badan
Andaikan terdapat sekeping kod seperti ini:
def demo():
a = 1
b = 0
c = a / b
def main():
try:
demo()
except Exception as e:
print(e)
main()
Sekarang saya berharap nilai a dan b dalam demo boleh diperolehi tanpa membuat sebarang pengubahsuaian pada kod dalam fungsi demo apabila pengecualian berlaku.
仅有的幸福2017-05-18 10:57:41
Saya merujuk kepada masalah ini dan menyelesaikannya.
Fungsi bersarang mendapat fungsi panggilan
PHP中文网2017-05-18 10:57:41
Gunakan pembolehubah global global
untuk mencapai
a = b = 0
def demo():
global a, b
a = 1
b = 0
c = a / b
def main():
try:
demo()
except Exception as e:
print 'a: %d, b: %d' % (a, b)
print(e)
main()
过去多啦不再A梦2017-05-18 10:57:41
Fungsi tambah rujukan, ini adalah ilmu skop berubah
a = None
b = None
def demo():
global a, b
a = 1
b = 0
c = a / b
def main():
try:
demo()
except Exception as e:
print(e)
main()
print a
print b
Atau letakkan a dan b dalam pembolehubah kamus, supaya global tidak diperlukan
g = {"a":0,"b":0}
def demo():
g['a'] = 1;
g['b'] = 0
c = g['a'] / g['b']