python - Bagaimana untuk mendapatkan nilai dalam fungsi bersarang
PHP中文网
PHP中文网 2017-05-18 10:55:41
0
3
793

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.

PHP中文网
PHP中文网

认证0级讲师

membalas semua(3)
仅有的幸福

Saya merujuk kepada masalah ini dan menyelesaikannya.
Fungsi bersarang mendapat fungsi panggilan

Ty80

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梦

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']
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan