Но нам удавалось довольно долго обходиться без этого нового модуля — так почему же он у нас теперь есть?
У меня есть общее представление о назначении перечислений из других языков. В Python обычно используется простой класс следующим образом и ссылается на него как на перечисление:
Код: Выделить всё
class Colors:
blue = 1
green = 2
red = 3
Код: Выделить всё
function_of_color(Colors.green)
Тогда я полагаю, я мог бы просто использовать что-то вроде именованного кортежа, который был бы неизменяемым?
Код: Выделить всё
>>> Colors = namedtuple('Colors', 'blue green red')
>>> colors = Colors('blue', 'green', 'red')
>>> colors
Colors(blue='blue', green='green', red='red')
>>> list(colors)
['blue', 'green', 'red']
>>> len(colors)
3
>>> colors.blue
'blue'
>>> colors.index(colors.blue)
0
Итак, вернемся к перечислениям.
Какова цель перечислений? Какую ценность они создают для языка? Когда мне следует их использовать, а когда следует избегать?
Подробнее здесь: https://stackoverflow.com/questions/376 ... e-good-for
Мобильная версия