Первоначальная проблема, которую я вижу, состоит в том, что none
не является встроенным значением в Python.None
- это все же.
Кроме того, башня вложенных операторов if в первой функции не нужна.Выровняйте это!
def defineType(riskCode):
if riskCode == 1:
riskType = High
elif riskCode == 2:
riskType = Moderate
elif riskCode == 3:
riskType = Low
elif RiskCode == 4:
riskType = No
Это не ошибка, но гораздо более читабельно, не так ли?(Проще набрать тоже:)
Кроме того, я так понимаю, что High
, Moderate
, Low
и No
определены в других местах вашего кода?Если вы используете их как перечисляемые константы (то есть как набор уникальных целых чисел, значения которых не меняются), HIGH
, MODERATE
, LOW
и NO
будут более идиоматическими.
И на самом деле, если бы вы сделали это, вся функция могла бы быть уничтожена следующим образом:
HIGH = 1
MODERATE = 2
LOW = 3
NO = 4
Теперь вам не нужно их вообще отображать;и вы можете просто назначить riskCode
на riskType
, хотя это может быть немного избыточно!
riskType = riskCode
Если вы хотите получить строки из кодов риска, попробуйте второй словарь от ArtsiomОтвет Рудзенки .
Наконец ... Я бы предложил поместить эти коды в их собственное пространство имен:
class Risk(object):
HIGH = 1
MODERATE = 2
LOW = 3
NO = 4
Затем вы можете ссылаться на них так:
if riskCode == Risk.HIGH: do_something()
Теперь вы можете использовать короткие слова, такие как NO
для других вещей.