我想创建一个类,其 f 方法取决于已创建类对象的“模式”。
下面的代码不起作用,但希望它能让您了解我想要做什么。我的想法是有一个字典,我在其中定义每种模式的设置(在这种情况下是分配给 self.f 的函数或方法,这样我就不必在 init 函数中使用许多 if elif 语句,而是分配正确的值使用字典。
class A(object):
_methods_dict={
'a':A.f1,
'b':A.f2
}
def __init__(self,mode = 'a'):
self.f = _methods_dict[mode]
def f1(self,x):
return x
def f2(self,x):
return x**2
我不知道为什么这不起作用,您将如何解决?还有更好的(和更多的pythonic)方法来获得相同的功能吗?