У меня есть ситуация, когда мне нужно обеспечить и предоставить пользователю возможность использовать одну из нескольких функций выбора для передачи в качестве аргумента другой функции:
Я действительно хочу добиться чего-то вроде следующего:
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()