如何在不运行变量声明之外的所有代码的情况下从Python中的另一个文件访问变量?
我已经查找了几个解决此问题的方法,但似乎没有一个有效。假设我有一个名为“Var”的文件,我简单地放了:
myvar = 25
print("myvar is equivalent to 25.")
然后我有另一个名为“运行”的文件,我把:
from Var import myvar
print(myvar)
从“运行”文件中,我想从该文件访问的唯一内容是变量,但是当我实际运行代码时,它会运行整个文件,因此输出为:
myvar is equivalent to 25.
25
我想要做的就是访问变量,但由于某种原因它正在运行整个文件!我如何获取它以便它只获取变量而不运行整个文件?
回答
当一个 python 模块被加载时,它将遍历文件并执行顶层的所有语句。
如果您希望该print语句仅在您将文件作为脚本执行(例如通过运行python Var.py)时才发生,那么您需要检查它是否是“主”模块。
为此,您可以检查__name__属性。
为了 Var.py
myvar = 25
if __name__ == "__main__":
print("myvar is equivalent to 25.")
对于Run.py:
from Var import myvar
if __name__ == "__main__":
print(myvar)
THE END
二维码