如何使用python在同一个dict中调用该方法

时间:2011-03-16 03:57:37

标签: python dictionary

这是我的代码:

a= {'u': lambda x: x*x,'b':self.u(5)}

print a['u'](5)
print a['b']

但显示错误:

Traceback (most recent call last):
  File "a.py", line 6, in <module>
    a= {'u': lambda x: x*x,'b':self.u(5)}
NameError: name 'self' is not defined

所以如何打印['b']

感谢

2 个答案:

答案 0 :(得分:5)

首先想到:为什么不使用课程呢?

class A:
    def u(x):
        return x*x
    def b():
        return self.u(5)
a = A()

第二个想法:如果你真的必须用字典做(但是真的,你必须吗?),试试这个:

a = {'u': lambda x: x*x}
a['b'] = a['u'](5)

由于您没有实现对象的方法,因此没有self

答案 1 :(得分:0)

我不确定你为什么要这样做,但这是不可能的,相反你可以逐个分配给dict。

a= {'u': lambda x: x*x}
a['b'] = a['u'](5)

或首先定义该功能,然后使用它,例如

f = lambda x: x*x
a= {'u': f, 'b': f(5)}