2016-08-03 2 views
0

집합이 현재 로컬 범위 또는 전역 범위에서 사용 가능한지 확인하려고하면 항상 아래 오류가 표시됩니다.집합이 지역 변수, 전역 변수 또는 변수 집합에없는 이유

>>my_set = set() 

>>my_set in locals() 
>>Traceback (most recent call last): 

    File "<ipython-input-22-47b6756e3345>", line 1, in <module> 
    my_set in locals() 

TypeError: unhashable type: 'set' 
>>my_set in globals() 
>>Traceback (most recent call last): 

    File "<ipython-input-22-47b6755f5503>", line 1, in <module> 
    my_set in globals() 

TypeError: unhashable type: 'set' 
>>my_set in vars() 
>>Traceback (most recent call last): 

    File "<ipython-input-22-47b6755f9947>", line 1, in <module> 
    my_set in vars() 

TypeError: unhashable type: 'set' 

세트가 이러한 사전 (지역, 전역 또는 용기)에없는 경우 세트가 정의되었는지 어디에서 확인할 수 있습니까?

+0

위의 내용은 "not in"을 말하지 않습니다. "TypeError : unhashable type : 'set'"이라고 말하면 잘하면 올바른 방향으로 가리켜 줄 것입니다. – larsks

+0

왜 이러는거야? 이것은 파이썬에서 변수를 검사하는 방법이 아닙니다. 'None'으로 초기화 한 다음 다른 것으로 설정되었는지 확인하십시오. –

+0

@ 2 비트 연금술사, 나는 파이썬에 매우 익숙하며 자바에서 파이썬으로 조정하는 것은 나에게 여전히 이상하다. –

답변

6

확인할 때 이름을 인용해야합니다.

>>> my_set = set() 
>>> locals 
<built-in function locals> 
>>> locals() 
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', 'my_set': set([]), '__doc__': None, '__package__': None} 
>>> 'my_set' in locals() 
True 
>>>