【发布时间】:2022-01-08 22:41:20
【问题描述】:
我正在做我的第一个项目,并试图弄清楚某些东西是如何工作的。如果我有一个存储一些函数的模块,我将在我的主程序中引用依赖于另一个模块的函数,我在哪里包含 import 语句?
例如:
# Title: func.py
import os
def my_function(path):
if not os.path.isfile(path):
parser.error(f'The file {path} does not exist.')
我是否在此处包含import os,或者我可以简单地将其包含在主文档中?
【问题讨论】:
-
您必须在引用模块的文件中
import模块。所以如果你有一个文件在某处调用os.path.isfile,你需要在该文件的顶部import os。 -
import语句做了两件事:1) 必要时创建模块,2) 将模块绑定到当前范围内的名称。 Python 没有进程范围的全局作用域(除了内置作用域,它实际上是只读的),只有每个模块的全局作用域。 -
知道了。在这种情况下,我将调用整个模块,所以没关系。但是有没有更好的方法来写这个,所以如果我运行类似
from funcs import my_function的东西就不会出错,因为os永远不会被导入? -
每个函数都有一个对其全局命名空间的引用。您不需要
my_function在 calling 命名空间中使用的名称my_function即可工作。