У меня есть словарь Python, который помечает имя ключа для атрибутов. Программа, привязанная к этому словарю, настроена так, чтобы иметь только несколько элементов, и только если они необходимы. Поэтому не все атрибуты в словаре определяются на каждом проходе этого скрипта.
Вот код со словарем
def getWidths(self,sheetName):
sheets = {
'dclabels':self.dclabels,
'tdclabels':self.tdclabels
}
sheetName = sheetName.lower()
if sheetName in sheets:
return sheets.get(sheetName)
else:
return self.colWidths
Я получаю сообщение об ошибке AttributError: ClassName instance has no attribute 'dclabels'
Как я могу избежать этой ошибки? Есть ли способ заставить скрипт игнорировать любые атрибуты, которые не определены? Спасибо!
Я нашел решение моей проблемы.
def getWidths(self,sheetName):
if hasattr(self, sheetName.lower()):
name = getattr(self,sheetName.lower())
self.name = name
return self.name
else:
return self.colWidths
Я использовал hasattr()
и getattr()
, чтобы решить мою проблему. Спасибо всем за ваши предложения.