Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python主脚本中定义的变量运行下标?_Python_Python 3.x - Fatal编程技术网

如何使用Python主脚本中定义的变量运行下标?

如何使用Python主脚本中定义的变量运行下标?,python,python-3.x,Python,Python 3.x,我有一个主脚本,我们将使用它调用main.py x = 5 import sub.py 我想用它调用一个下标sub.py来使用我在main.py中定义的变量 print(x) 这给了我一个没有定义x的错误 在脚本之间有效地“转换”或传递变量是否有最佳实践?我是否需要在本地定义每个变量,或者是否有一个简单的方法来维护给定目录中可以跨多个下标调用的全局变量?请尝试从sub import x@azro,这会有什么帮助?OP试图使用sub中main中的变量,而不是相反。@stem\uu\u bar,

我有一个主脚本,我们将使用它调用main.py

x = 5
import sub.py
我想用它调用一个下标sub.py来使用我在main.py中定义的变量

print(x)
这给了我一个没有定义x的错误


在脚本之间有效地“转换”或传递变量是否有最佳实践?我是否需要在本地定义每个变量,或者是否有一个简单的方法来维护给定目录中可以跨多个下标调用的全局变量?

请尝试从sub import x@azro
,这会有什么帮助?OP试图使用
sub
main
中的变量,而不是相反。@stem\uu\u bar,通常的“优雅方法”是将这些变量封装在可以传递的东西(模块或其他对象)中。依赖globals,如
print(x)
,通常被认为是糟糕的代码;而不是接受论点。甚至编写一个函数或对象初始化器,它只接受一个包含所有变量的大对象的单个参数,这比要求这些变量在全局范围中要好得多……在其他的参数中,考虑测试的易用性。调用
runCode(testVarsA)
然后调用
runCode(testVarsB)
要容易得多,而不需要在测试用例之间单独更改一组全局变量,然后清除导入缓存并在用例之间反复重新导入模块。当它是函数或对象初始值设定项时,您可以传递
runCode
并以多种方式调用它,而顶层模块代码的调用要复杂得多。@CharlesDuffy-将模块视为可以从一个脚本生成然后在另一个脚本中重新打开的数据包是正确的吗?这些数据包通常采用什么文件格式(.csv、.txt、.py?)