Как получить доступ и распечатать членов класса, используя ключ перечисления? - PullRequest
3 голосов
/ 05 июня 2019

У меня есть класс 'CocoPart', и он определяется следующим образом:

class CocoPart(Enum):
    Wrist = 4
    LShoulder = 5
    LElbow = 6
    LWrist = 7
    RHip = 8
    RKnee = 9
    RAnkle = 10
    LHip = 11
    LKnee = 12
    LAnkle = 13
    REye = 14
    LEye = 15
    REar = 16
    LEar = 17
    Background = 18

Этими членами в дальнейшем манипулируют. Позже в программе мне нужно получить к ним доступ, используя их имя. Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 05 июня 2019

У вас есть два варианта доступа к имени:

CocoPart.Wrist  # when you know at programming time

enum_name = 'Wrist'
CocoPart[enum_name]  # when the name is stored in a variable
1 голос
/ 05 июня 2019

Доступ к членам можно получить несколькими способами.

>>> list(CocoPart)
[<CocoPart.Wrist: 4>, ...]

>>> CocoPart.__members__.items()
odict_items([('Wrist', <CocoPart.Wrist: 4>), ...])

>>> for name, member in CocoPart.__members__.items():
...     print(name, member.value)
... 
Wrist 4
LShoulder 5
...

Более подробную информацию можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...