2016-08-03 14 views
0

Wenn ich versuche, zu überprüfen, ob ein Satz im aktuellen lokalen Bereich oder im globalen Bereich verfügbar ist, erhalte ich immer den folgenden Fehler.Warum nicht in lokalen, globalen oder vars-Wörterbüchern festgelegt ist

>>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' 

Wenn gesetzt ist nicht in jeder dieser Wörterbücher (Einheimische, Globals oder VARs), wo kann ich überprüfen, ob ein Satz definiert ist?

+0

Das oben genannte sagt nicht "nicht in" nichts; es heißt "TypeError: unhashable type: 'set'", was Sie hoffentlich in die richtige Richtung weisen würde. – larsks

+0

Warum machst du das? Dies ist nicht die Art, Variablen in Python zu überprüfen. Initialisiere es auf "None" und überprüfe, ob es auf etwas anderes gesetzt wurde. –

+0

@ Two-Bit Alchemist, ich bin sehr neu in Python und Anpassung von Java zu Python ist immer noch seltsam für mich –

Antwort

6

Sie müssen den Namen bei der Überprüfung angeben.

>>> 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 
>>> 
Verwandte Themen