Python 我只是想知道为什么代码会打印字符串,即使我只是在模块内部导入函数
my_module.pyPython 我只是想知道为什么代码会打印字符串,即使我只是在模块内部导入函数,python,python-3.x,Python,Python 3.x,my_module.py print('Module Imported...') test = 'Test String' def find_index(to_search, target): '''Find the index of a value in a sequence''' for i, value in enumerate(to_search): if value == target: return i
print('Module Imported...')
test = 'Test String'
def find_index(to_search, target):
'''Find the index of a value in a sequence'''
for i, value in enumerate(to_search):
if value == target:
return i
return 'none'
简介
from my_module import find_index
courses = ['Math', 'Arts', 'History', 'English']
index = find_index(courses, "History")
print(index)
运行此命令时,结果是:
Module Imported...
2
我想知道为什么我的程序打印“Module Imported…”字符串,即使我只导入find_index函数。从模块导入时,只有指定的名称绑定在导入范围内,但该模块中的所有顶级代码都会执行 这一点很重要,因为您导入的某些名称可能依赖于您没有显式导入的代码——例如,该模块自己的导入、导出函数所依赖的私有函数/类/对象的定义等等!如果您必须了解正在导入的模块的所有依赖项,并显式导入每个依赖项,以确保您实际尝试使用的东西能够正确工作,那么这将是非常不方便的 不用说,您不应该拥有不希望在每次导入时执行的顶级模块代码。这就是为什么您经常在脚本中看到块,如:
if __name__ == '__main__':
# actually do stuff
从模块导入时,只有指定的名称绑定在导入范围内,但该模块中的所有顶级代码都将执行 这一点很重要,因为您导入的某些名称可能依赖于您没有显式导入的代码——例如,该模块自己的导入、导出函数所依赖的私有函数/类/对象的定义等等!如果您必须了解正在导入的模块的所有依赖项,并显式导入每个依赖项,以确保您实际尝试使用的东西能够正确工作,那么这将是非常不方便的 不用说,您不应该拥有不希望在每次导入时执行的顶级模块代码。这就是为什么您经常在脚本中看到块,如:
if __name__ == '__main__':
# actually do stuff
通过导入文件,初始代码运行,并且“从我的\u模块”只导入可使用的范围,以便更快地加载文件,但第一个代码始终运行通过导入文件,初始代码运行,而“从我的\u模块”只导入可使用的范围,以便更快地加载文件,但首先加载代码总是在运行如果你必须把代码放在
中,如果
你必须把代码放在中,如果
你必须把代码放在中,如果
你必须把代码放在中。Thx,我是新来的codingoh,这是有道理的。Thx,我是新的编码