আমি একটি প্রশ্ন খুঁজে পেয়েছি, কেন আমি একটি অভিধানের বৈশ্বিক পরিবর্তনশীলকে ফেরত দিচ্ছি, এবং যখন এটি আবার কল করা হয়, তখন পরিবর্তনশীলটি আচ্ছাদিত হবে, কোডটি নীচে রয়েছে, # সংখ্যাটির তিনটি লাইনটি মূলত মুদ্রিত হওয়া উচিত ছিল 1, 2, 3, তবে বাস্তবে এটি মুদ্রিত হয়েছিল 3, 3, 3। আমি বুঝতে পারছি না। এটি আমার পুনরাবৃত্তির মধ্যে পাওয়া সমস্যা, আমি দেখতে পেলাম যে ফলাফলগুলি একইভাবে মুদ্রিত হয়েছে, এবং তারপরে ধাপে ধাপে উত্সটি খুঁজে পেয়েছি এখানে। আমি বৈশ্বিক পরিবর্তনশীলকে স্থানীয় পরিবর্তনশীলতে রূপান্তর করেছি তবে এই সমস্যাটি নেই, তবে আমি কেন এটি কাজ করে না তা বোঝার চেষ্টা করছি, দয়া করে উত্তর দিন।
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()
আমি কেন এইভাবে প্রিন্ট করলাম?
{'one': 3}
{'one': 3}
{'one': 3}
不是key的问题吧,我全局变量换成局部变量就没问题的啊,像这样key不也覆盖的吗?
def fun(a):
dict_zz = {}
dict_zz['one'] = a
return dict_zz
def main():
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)
main()
- 1
