Saya mendapati satu masalah, mengapa saya kembalikan satu global variable kamus, dan apabila dipanggil semula, ia akan dilapisi, ah, kod di bawah, tiga baris nombor # itu secara logiknya dicetak juga 1, 2, 3, ah, tetapi ia sebenarnya dicetak 3, 3, 3 tidak dapat difahami. Ini adalah masalah yang saya dapati dalam percubaan semula, dan mendapati bahawa hasilnya dicetak sama, kemudian langkah demi langkah mencari akarnya di sini. Saya mengubah global variable menjadi lokal variable tidak ada masalah ini, tetapi saya ingin memahami mengapa ia tidak berfungsi, mohon jawapan yang besar. def fun(a): dict_zz[‘one’] = a return dict_zz def main(): params() dict_zz_15min = fun(1) dict_zz_1h = fun(2) dict_zz_4h = fun(3) print(dict_zz_15min) # print(dict_zz_1h) # print(dict_zz_4h) #
def params(): global dict_zz dict_zz = {} main()
Kenapa saya cetak seperti ini? {‘one’: 3} {‘one’: 3} {‘one’: 3}