Как сделать enum доступным для пользователей класса без дополнительных зависимостей? - PullRequest
0 голосов
/ 23 марта 2020

У меня есть несколько допустимых значений в качестве входных данных для метода класса, и я думаю, что хороший способ контролировать это - использовать тип enum. Уловка в том, что я не хочу создавать дополнительные зависимости.

Есть ли хороший способ Pythoni c сделать это?

Например, будет работать следующее.

import enum

class A(enum.Enum):
  one=1
  two=2
  three=3

class Myclass:

  def method(self, a: A):
    print('Inside method')
    print(a)

  # Two approaches I've looked at
  method.input = A  # Approach 1: Associates directly with the method
  method_input = A  # Approach 2: Provides access to enum through the class

m = Myclass()

# Approach 1: Doesn't give code completion. Associates with the method
m.method(m.method.input.one)

# Approach 2: Gives code completion. Depends on a naming convention
m.method(m.method_input.one)

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

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