为什么exec
在类方法中调用它时无法运行此代码?
class test(object):
def run(self):
exec("f=lambda n:(n>15and f(n//16)or'')+'HBKD'[n//4%4]+'OAEI'[n%4];print(f(156))")
exec("g=lambda n:(n>15and g(n//16)or'')+'HBKD'[n//4%4]+'OAEI'[n%4];print(g(156))")
t = test()
t.run()
类外的exec
调用正常,但run()
函数内的调用失败,并给出NameError
:'NameError:name'f'未定义' 。为什么?