ProgramingTip

왜 빈 사전이 컴파일러에서 위험한입니까?

bestdevel 2020. 10. 28. 20:21
반응형

왜 빈 사전이 컴파일러에서 위험한입니까?


pylint (Sublime 패키지 사용)는 위험합니다. 어떤 누군가가 왜 그런지 설명 할 수 있습니까? 대신 없음을 사용하는 더 나은 대안이 있습니까?


함수가 인수를 수정하는 경우에만 위험합니다. 기본 인수를 수정하면 다음 호출까지 지속되는 "빈"딕셔너리는 첫 번째 호출 이외의 호출에 대한 값을 포함하기 시작합니다.

예, 사용하는 None경우은 안전하고 일반적입니다.


예를 살펴 보겠습니다.

def f(value, key, hash={}):
    hash[value] = key
    return hash

print f('a', 1)
print f('b', 2)

출력 할 것으로 예상되는 내용 :

{'a': 1}
{'b': 2}

실제로 다음과 같이 출력됩니다.

{'a': 1}
{'a': 1, 'b': 2}

참고 URL : https://stackoverflow.com/questions/26320899/why-is-the-empty-dictionary-a-dangerous-default-value-in-python

반응형