我在想办法解决我遇到的一些问题。 我已经为这里的例子编写了一个小程序(我将在实际的例子中实现这个解决方案:)
所以, 我有3个文件 一个-这是主要的 测试-这是我运行的测试 CounterTest-其中包含def类
一:
def main():
CounterTest=1
execfile("c:\\111\\Test.py")
if __name__ == '__main__':
main()
测试:
^{pr2}$反测试:
class CounterTest1():
def CounterPlus(self):
CounterTest +=1
print CounterTest
场景: 我运行“one”来执行文件测试(所有这些都发生在main def中) 在“Test”中,我调用class和def-在def中,我们计数器+1,这是在“one”文件中定义的。在
我得到“赋值前引用的局部变量'CounterTest'”
我什么都试过了,但没用
认可
谢谢
总之,你不能。如果我正确理解你的过程,你就是:
1。正在运行
main.py
。2在函数内部定义变量,使其非全局变量
3。从其他文件执行代码
^{pr2}$4。它会导入第三个文件
5。它试图修改第一个文件中的全局
你不能那样做。你还差三个级别的“不”。在
main.py
的CounterTest
不是全局的,所以它只在def main
的作用域内可用。在test.py
在没有显式传递的情况下也不能访问main.py
的全局变量。在execfile(path, globals_dict, locals_dict)
),并且它们在test.py
中变成了全局变量,CounterTest.py
也不允许看到{你甚至不能为了让事情好起来而胡闹。你需要参数化值,你需要停止使用全局变量。整个过程应该是:
相关问题 更多 >
编程相关推荐