2016-08-03 52 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

上面沒有說「不在」任何東西;它說:「類型錯誤:不可用類型:'設置'」,這將有望指向你在正確的方向。 – larsks

+0

你爲什麼這樣做?這不是在Python中檢查變量的方法。將其初始化爲「無」,然後檢查它是否已設置爲其他內容。 –

+0

@雙位煉金術士,我對python非常陌生,並且從java調整到python對我來說仍然很奇怪 –

回答

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 
>>> 
相關問題