类方法

时间:2016-09-03 16:49:51

标签: python-3.x

为什么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'未定义' 。为什么?

0 个答案:

没有答案