具有多态性的类枚举
在下面的这个Enum
继承的例子中,当我们对成员的值调用一个多态方法时,结果却出乎意料。
from enum import Enum
class Activation:
def activate(self, value):
print("in activation")
pass
def derivative(self, value):
pass
class Relu(Activation):
def activate(self, value):
print('in relu')
return max(0, value)
def derivative(self, value):
return 0 if value<= 0 else 1
class Activations(Activation, Enum):
RELU = Relu()
#TANH = Tanh()
#SIGMOID = Sigmoid()
#SOFTMAX = Softmax()
activ1 = Relu().activate(11) # output: in relu
activ2 = Activations.RELU.activate(11) # output: in activation
activ2
的输出是 'in activation',而我们想要的输出是 'in relu'。
1 个回答
暂无回答