从类中检索元素

时间:2015-03-18 19:38:17

标签: python

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中做到这一点,但我无法思考如何......

1 个答案:

答案 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 {})

最后你真的只是将它用作字典。那么为什么不使用字典,如果这让事情变得更容易。