您已经了解了如何通过一次定义函数来在程序中重用代码。如果您想在编写的其他程序中重用许多功能该怎么办?您可能已经猜到了,答案是模块。 编写模块的方法有很多种,但是最简单的方法是使用.py 扩展名创建一个包含函数和变量的文件。 另一种方法是用编写Python解释器本身的本机语言编写模块。例如,您可以使用C编程语言编写模块,并且在编译时可以使用标准Python解释器从Python代码中使用它们。 一个模块可以由另一个程序导入以利用其功能。这也是我们也可以使用Python标准库的方式。首先,我们将了解如何使用标准库模块。 示例(另存为module_using_sys.py ): import sys
print('The command line arguments are:')
for i in sys.argv:
print(i)
print('\n\nThe PYTHONPATH is', sys.path, '\n')
输出: $ python module_using_sys.py we are arguments # each arg is separated by white space
The command line arguments are:
module_using_sys.py
we
are
arguments
The PYTHONPATH is ['/tmp/py',
# many entries here, not shown here
'/Library/Python/2.7/site-packages',
'/usr/local/lib/python2.7/site-packages']
这个怎么运作 首先,我们导入了sys 使用该模块import 声明。基本上,这意味着我们告诉Python我们要使用此模块。该sys 模块包含与Python解释器及其环境(即系统)相关的功能。 当Python执行该import sys 语句时,它将查找sys 模块。在这种情况下,它是内置模块之一,因此Python知道在哪里可以找到它。 如果它不是编译模块(即用Python编写的模块),则Python解释器将在其sys.path 变量中列出的目录中搜索该模块。如果找到该模块,那么将运行该模块主体中的语句,并使该模块可供您使用。请注意,初始化仅在我们第一次导入模块时完成。 使用点分符号(即)访问模块中的argv 变量。它清楚地表明此名称是模块的一部分。这种方法的另一个优点是该名称不会与程序中使用的任何变量发生冲突。sys sys.argv sys argv 该sys.argv 变量是一个列表字符串(列表中详细说明一个的后面的章节)。具体来说,sys.argv 包含命令行参数列表,即使用命令行传递给程序的参数。 如果使用IDE编写和运行这些程序,请寻找一种在菜单中为该程序指定命令行参数的方法。 在这里,当我们执行时python module_using_sys.py we are arguments ,我们module_using_sys.py 使用python 命令运行模块,随后的其他事情是传递给程序的参数。Python将命令行参数存储在sys.argv 变量中供我们使用。 请记住,正在运行的脚本的名称始终是sys.argv 列表中的第一个元素。因此,在这种情况下,我们将拥有'module_using_sys.py' as sys.argv[0] ,'we' as sys.argv[1] ,'are' assys.argv[2] 和'arguments' as sys.argv[3] 。请注意,Python从0开始计数,而不是从1开始。 其中sys.path 包含从中导入模块的目录名称列表。请注意,第一个字符串sys.path 为空-此空字符串表示当前目录也是该目录的一部分,sys.path 与PYTHONPATH 环境变量相同。这意味着您可以直接导入位于当前目录中的模块。否则,您将必须将模块放置在中列出的目录之一中sys.path 。 请注意,当前目录是从中启动程序的目录。运行import os; print(os.getcwd()) 以查找程序的当前目录。 |