Как определить значения перечисления, которые являются функциями?Python

Программы на Python
Anonymous
Как определить значения перечисления, которые являются функциями?

Сообщение Anonymous »

У меня есть ситуация, когда мне нужно обеспечить и предоставить пользователю возможность использовать одну из нескольких функций выбора для передачи в качестве аргумента другой функции:

Я действительно хочу добиться чего-то вроде следующего:

from enum import Enum

#Trivial Function 1
def functionA():
pass

#Trivial Function 2
def functionB():
pass

#This is not allowed (as far as i can tell the values should be integers)
#But pseudocode for what I am after
class AvailableFunctions(Enum):
OptionA = functionA
OptionB = functionB


Таким образом, можно выполнить следующее:

def myUserFunction(theFunction = AvailableFunctions.OptionA):
#Type Check
assert isinstance(theFunction,AvailableFunctions)

#Execute the actual function held as value in the enum or equivalent
return theFunction.value()

Вернуться в «Python»