2017-05-08 5 views
-3
class dheepak(): 
    age = 23 
    name = "dheepak sasi" 

ankit = getattr(dheepak, "hostname", ' ') 
if ankit == None: 
    print "Shanaya" 
else: 
    print "byee" 
mani = dheepak.age 

print ankit 

Wenn Hostname nicht vorhanden ist, sollte Shanaya gedruckt werden, wenn Hostname vorhanden ist als Druck Byee. Und Host-Name-Wert wird von einem anderen Programm kommt manchmal kommt es manchmal nichtWie überprüft man, ob eine Variable leer ist?

+1

Oder http://stackoverflow.com/questions/9926446/how-to-check-whether-a-strvariable-is-empty-or-not –

Antwort

0

Wie wäre es damit:

class dheepak(): 
    age = 23 
    name = "dheepak sasi" 

ankit = getattr(dheepak, "hostname", '') 
if not ankit: 
    print "Shanaya" 
else: 
    print "byee" 
mani = dheepak.age 

print ankit 
2

Sie ein Leerzeichen als Wert für ankit liefern, wenn kein solches Attribut ist, aber die Überprüfung für None. Seien Sie konsequent:

ankit = getattr(dheepak, "hostname", None) 
if ankit is None: 
    ... 

oder

ankit = getattr(dheepak, "hostname", ' ') 
if ankit == ' ': 
    ... 

Noch besser wäre es, versuchen Sie nicht, überhaupt einen Sentinel-Wert zu definieren; Fangen Sie einfach die Ausnahme von getattr ausgelöst, wenn das Attribut nicht existiert.

try: 
    ankit = getattr(dheepak, "hostname") 
except AttributeError: 
    print "Shanaya" 
else: 
    print "byee" 
+0

Da sie den Attributwert nicht benötigen, ' hasattr 'könnte geeigneter sein. –

+0

Ich habe nicht mehr getan als mit Python 3 zu experimentieren, also vermeide ich 'hasattr'. https://hynek.me/articles/hasattr/ – chepner

Verwandte Themen