如何将值发送到 exec 的 运行 代码
How to send a value to exec's running code
第一个,我有两个类这样的:
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或其他方式发送。
那我该怎么做呢?
您可以将 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)
这输出:
foobar
foobar
第一个,我有两个类这样的:
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或其他方式发送。
那我该怎么做呢?
您可以将 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)
这输出:
foobar
foobar