저는 왜 제가 사전 범변수를 반환하고, 다시 호출할 때 변수가 덮여지는지 문제를 발견했습니다. 코드가 아래쪽에 있고, #라는 세 줄의 코드에서 1,2,3를 인쇄해야하지만 실제로는 3,3,3를 인쇄하는 것은 이해가 되지 않았습니다. 이것은 제가 다시 테스트를 통해 발견한 문제입니다. 결과는 모두 동일합니다.
def fun ((a):
dict_zz[
def 패람스 (((): 글로벌 dict_zz dict_zz = {} 주요 (()
왜 제가 이런 식으로 인쇄한 걸까요?
초목같은 키를 사용해서 모든 것을 덮고 있습니다.
토니233당신은 바로 사전이
초목def fun ((a): dict_zz['one'] = a dict_zz 를 반환 def main ((): 파람스 ((() dict_zz_15min = 재미있어요 print ((dict_zz_15min) ] dict_zz_1h = 재미(2) print ((dict_zz_1h) ] dict_zz_4h = 재미 ((3) print ((dict_zz_4h) # def 패람스 (((): 글로벌 dict_zz dict_zz = {} 주요 (()
토니233이 말은 좀 이상해 보이네요. 파이썬의 기본은 무엇일까요?
토니233키가 아니라, 내 범변수를 로컬 변수로 바꾸면 괜찮을거야, 키가 덮여 있지 않나? 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 (주))
토니233키가 아니라, 전적 변수를 로컬 변수로 바꾸면 됩니다.