2017-05-11 104 views
0

我得到一個奇怪的錯誤...這是我在Python2.7代碼:AttributeError:'str'對象沒有屬性'get_name'?

for key,value in pins_by_power.iteritems(): 
    print key.get_name() 

輸出是我想要的答案,再加上不需要的錯誤:

im_mclkin 
im_trig_eventin 
im_trig_ubreak 
it_bypass_sel 
Traceback (most recent call last): 
    File "sample.py", line 80, in <module> 
    key_name = key.get_name() 
AttributeError: 'str' object has no attribute 'get_name' 
  1. 如何我可以得到答案和錯誤嗎?除非那AttributeError是一個例外?
  2. 如何避免例外,如果它是這樣的事情?
+5

呃,你期待什麼類型的對象'key'有它的'key.get_name'方法?因爲顯然有時'鍵'是一個字符串。 –

回答

1

您可以使用tryexcept避免AttributeError

for key,value in pins_by_power.iteritems(): 
    try: 
     print(key.get_name()) 
    except AttributeError: 
     print('{} (type {}) has no attribute "get_name"'.format(key, type(key))) 

,你有一定的效果的原因是,這些成果已print ED你打的異常之前。在for -loop或腳本的早期部分。