2012-04-13 2 views
1

Wie kann man die Attr Existenz in Funktion oder Methode mit hasattr (oder ohne) überprüfen? Wenn ich versuche, es in irgendeiner Weise falsch zu überprüfen:hasattr mit Funktionen

>>> def f(): 
     at = True 


>>> hasattr(f, 'at') 
False 
>>> hasattr(f(), 'at') 
False 
+0

Was hoffen Sie mit den Informationen zu tun? –

Antwort

5

Lokale Variablen sind keine Attribute. Sie können keine *attr() verwenden, um sie zu bearbeiten.

+0

+1. @ I159: Wenn Sie * wirklich * sehen möchten, welche lokalen Variablen eine Funktion verwendet, [dieser Code] (http://stackoverflow.com/questions/1360721/how-to-get-set-local-variables-of- Eine Funktion von außen in Python ist da draußen, aber was wäre Ihr Anwendungsfall? –

0

Es sollte funktionieren, siehe unten Beispiel.

>>> def f(): 
... f.at = True 
... 
>>> hasattr(f, 'at') 
False 
>>> f() 
>>> hasattr(f, 'at') 
True