如何使用函数的参数作为函数内另一个对象的对象?

时间:2013-10-27 19:01:05

标签: python class

我已经坚持了很长时间(就像几周一样),我已经完成了代码中的所有其他内容但是这个。我也经常研究,但无法在解决方案附近找到任何地方。我等待一周来这里的唯一原因是因为我想自己解决这个问题,但现在,我放弃了!

现在,假设我有以下代码:

class test:
  def meth1(self, obj):
    self.hello = {}
    return self.hello.obj()
  def meth2(self):
      test.meth1(self, 'keys')

现在,当我创建一个实例并尝试像这样调用方法meth2时:

x = test()
x.meth2()

由于显而易见的原因,它给了我一个错误。我怎样才能让它做我想做的事情 - 将一个参数传递给一个函数并将该参数用作另一个对象的对象?

1 个答案:

答案 0 :(得分:2)

看起来你想要getattr()

def meth1(self, obj):
    self.hello = {}
    return getattr(self.hello, obj)()

getattr(a, b)相当于a.b(其中b在第二种情况下是第一种情况的b成立的字符串。在这种情况下,aself.hellobobj。在您的代码段中,您似乎想要调用 obj属性而不是直接返回它,这就是我们最后有()的原因。


>>> class test:
...     def meth1(self, obj):
...         self.hello = {}
...         return getattr(self.hello, obj)()
...     def meth2(self):
...         return test.meth1(self, 'keys')
... 
>>> x = test()
>>> x.meth2()
[]