Нужна запятая после Enum для правильного вывода значений в список - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь создать вспомогательную функцию, которая преобразует значения Enum в список.

Это сработает, если я сделаю это:

from enum import Enum

class TestEnum(Enum):
  item1 = 'Def1',
  item2 = 'Def2',
  item3 = 'Def3',

@staticmethod
def createListFromEnum(enum):
  return [elem.value[0] for elem in enum]

print(createListFromEnum(TestEnum))

Что выводит:

['Def1','Def2','Def3']

Но если я не поставлю запятую после последнего элемента, яget:

['Def1','Def2','D']

Поскольку последняя запись по какой-то причине не зарегистрирована как кортеж.Я посмотрел на другие ответы для преобразования перечисления в список значений, но ни один из них, похоже, не рассматривал это как проблему.

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Вам не нужны запятые в перечислении.

Я думаю, это то, что вы хотите:

from enum import Enum

class TestEnum(Enum):
    item1 = 'Def1'
    item2 = 'Def2'
    item3 = 'Def3'

def createListFromEnum(enum):
    return [elem.value for elem in enum]

print(createListFromEnum(TestEnum))

Вывод:

['Def1', 'Def2', 'Def3']

См.документация: https://docs.python.org/3/library/enum.html#creating-an-enum

0 голосов
/ 24 мая 2018

В первом случае вы обращаетесь к первому элементу в tuple.Во втором случае у вас нет tuple и адрес первого символа string.

. Посмотрите на этот простой пример:

>>> print(('python',)[0])
python
>>> print('python'[0])
p
...