猿问

如何向 exec 的运行代码发送值

首先,我有两个这样的课程:


class A(object):

    def foo(self, context):

        print(context)


class B(object):

    def foo(self, context):

        print(context)

注意context这里的变量。


其次,我想像这样在 exec 中调用 A 和 B:


body = """

a = A()

a.foo()

b = B()

b.foo()

"""

exec(body)

我还有其他一些使用context.


这意味着我不希望context变量出现在body代码中。它是在其他地方生成的。我想通过 exec 或其他方法发送它。


那么我该怎么做呢?


慕尼黑8549860
浏览 96回答 1
1回答

慕桂英4014372

您可以context改为创建一个全局变量:class A(object):    def foo(self):        print(context)class B(object):    def foo(self):        print(context)body = """a = A()a.foo()b = B()b.foo()"""context = 'foobar'exec(body)这输出:foobarfoobar
随时随地看视频慕课网APP

相关分类

Python
我要回答