我有两个python文件,如1.py和2.py。
**1.py is as**
class A:
def __init__(self):
x = 5
y = 7
NUMBERS = self
fp = open(filePath)
temp = fp.read()
exec(temp)
fp.close()
ADD_METHOD()
**2.py is as**
def ADD_METHOD():
print NUMBERS.x + NUMBERS.y
现在我的问题是如何在2.py文件中提供此NUMBERS变量。 这是更好地查看问题的示例,我知道我可以通过导入模块来做到这一点,但问题是我必须用exec()方法做解决方案并且我可以在2.py文件中获得NUMBERS,即我是否必须通过这与exec作为参数或其他方法。
任何帮助都非常明显 谢谢
答案 0 :(得分:2)
如果这些都是您自己编写的Python文件,为什么不在2.py
创建一个可以导入并调用1.py
的函数?这是一个更容易和更清晰的抽象。它还避免了创建新流程。你可以这样写:
# **1.py is as**
from 2 import ADD_METHOD
class A:
def __init__(self):
x = 5
y = 7
ADD_METHOD(x, y)
# **2.py is as**
def ADD_METHOD(x, y):
print x + y
请注意,您应该选择比1.py
和2.py
更好的名称以避免以后出现混淆;)
答案 1 :(得分:0)
我不确定你到底需要什么,但我有一个解决你的琐碎例子的解决方案。
# 1.py
...
os.execl( "2.py", str( NUMBERS.x ), str( NUMBERS.y ) )
# 2.py
from collections import namedtuple
A = namedtuple( "A", "x y" )
NUMBERS = A( x=sys.argv[1], y=sys.argv[2] )
...