class Foo():
def __init__(self, implementations):
self.implementations = {'foo': self.foo, 'bar': self.bar}
def foo(self, val):
return np.sin(val)
def bar(self,val):
return np.cos(val)
现在,我想以
的形式访问上述内容f = Foo()
f['foo'] = #returns sin function??
f['bar'] = # returns cos function??
f['baz'] = # raises an error?
f['all'] = # returns the functions in self.implementations
我觉得,应该有一种方法可以在python中做到这一点,但我无法思考如何......
答案 0 :(得分:0)
我不确定你究竟在寻找什么。也许就是那个UserDict
import UserDict
class Foo(UserDict.UserDict):
def __init__(self, data=None):
UserDict.UserDict.__init__(self, data if data is not None else {})
最后你真的只是将它用作字典。那么为什么不使用字典,如果这让事情变得更容易。