【发布时间】:2021-02-04 18:27:49
【问题描述】:
我有两个 .py 文件:
file_1.py
file_2.py
file_1.py 包含将打开栅格并将其拆分为多个部分的代码。类似于在 QGIS 中创建网格并裁剪到每个网格。我有一个变量x 设置为我想使用“raster.tif”的文件。我想将此变量导入 file_2.py。我通过@Ashwini Chaudhary(import file_1 然后file_1.x)找到了这个answer。我面临的问题是当我运行file_2.py 时,file_1 首先执行。我只是想访问变量而不执行文件。有可能吗?
【问题讨论】:
-
你不能。不过,您可以将不想运行的代码放在
if __name__ == "__main__":保护中。这是制作模块的惯用方式,您可以直接导入或执行而无需导入运行代码 -
IOW:“我只是想访问变量而不是执行文件。这可能吗?”不,那是不可能的。 怎么可能?
-
对不起,IOW 是什么意思?
-
“换句话说”
-
基本上,在执行模块之前,变量不存在,并且没有办法部分执行模块来提取特定变量的值。
importalways 执行整个模块。它必须。我将其作为副本关闭,您应该通读已接受的答案并使用if __name__ == "__main__"idiom 构建您的模块