2017-05-08 7 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 

hostnameが存在しない場合は、ホスト名がprint byeeよりも大きい場合は、Shanayaを出力する必要があります。そして、ホスト名の値が他のプログラムから来ている、時にはそれが時には変数が空であるかどうかを確認するには?

+1

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

答えて

0

のない来るどのようにこの件について:そのような属性が存在しない場合

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

あなたはankitの値としてスペースを供給しているが、Noneをチェック。一貫性を持たせ:

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

または

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

いっそのこと、すべてのセンチネル値を定義しようとしないでください。属性が存在しない場合は、getattrによって生成された例外をキャッチするだけです。

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

彼らは属性値を必要としないので、 ' hasattrはより適切かもしれません。 –

+0

私はPython 3を使いこなす以上のことをしていないので、私はまだ 'hasattr'を避けます。 https://hynek.me/articles/hasattr/ – chepner

関連する問題