У меня есть этот список ошибок с их связанными кодами и описаниями:Возвращение кортежа со значением в списке
Exception = namedtuple("Exception", "code name description")
exceptions = [
Exception(1, "ILLEGAL FUNCTION", "Definition 1"),
Exception(2, "ILLEGAL DATA ADDRESS", "Definition 2"),
Exception(3, "ILLEGAL DATA VALUE", "Definition 2")
]
Я хотел бы функцию, которая извлекает исключение с кодом == exception_code. Я искал вокруг и ближе всего я мог придумать это:
# Returns the Exception tuple corresponding to the exception_code
def getException(self):
return [item for item in exceptions if item[0] == self.exception_code]
Это работает, но это на самом деле возвращает список. Мой опыт работы с Python довольно беден, и я не могу понять, как просто возвращать кортеж вместо
NB: Там всегда будет ровно один кортеж с кодом == exception_code
Пример вывода из print x.getException
с мой текущий getException
:
[Exception(code=2, name='ILLEGAL DATA ADDRESS', description='Definition 2')]
Почему бы не использовать словарь, а? – jonrsharpe
Что? Каким будет это? Кроме того, если вам не нужен список, зачем использовать понимание списка? – jonrsharpe