这是我的代码:
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']
感谢
答案 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)}