1.模块
如果我们想在别的程序之中重用我们已经写好的函数,我们就需要使用模块。有很多种方法可以编写模块,其中最简单的就是创建一个包含函数变量,以 .py 格式为后缀的文件。
另一种方法是使用撰写 Python 解释器本身的本地语言来编写模块。举例来说,你可以使用 C 语言来撰写 Python 模块,并且在编译后,你可以通过标准 Python 解释器在你的 Python 代码中使用它们。
我们一般使用 import 命令来进行对模块的导入,在这里,我们导入 system(sys)模块来作为演示,它可以告诉你现在这个程序所处在的位置。
import sys
print('The command line arguments are:')
print(sys.argv, end = '\n')
for i in sys.argv:
print(i)
print('\n\nThe PYTHONPATH is', sys.path, '\n')
当然,我们也可以直接进行模块的导入,采用 from...import... 的方法。但我仍然建议使用单独的 import 语句以避免出现名称的冲突并且使程序更易读。
2.自己的模块
我们自己写一个简单的模块,并将其以 .py 的形式保存在某一个工程目录下。同时,我们自己再写一个测试文件,并保存在相同的工程目录下,这样,我们就可以在测试文件中使用 import 命令导入我们已经写好的模块。
模块:
def say_hello():
print('This is my module speaking')
__version__ = '0.1'
测试:
import myModule
myModule.say_hello()
print('Version', myModule.__version__)
3.dir函数
通过使用 dir 函数,我们可以方便的知道某一个模块(函数)中所包含或者定义的函数、类、变量,用法也十分简单
print(dir(myModule))
print(dir())
在这里,如果 dir 函数中没有给出参数,则默认为是当前模块的参数。
4.包
现在,你必须开始遵守用以组织你的程序的层次结构。变量通常位于函数内部,函数与全局变量通常位于模块内部。如果你希望组织起这些模块的话,应该怎么办?这便是包(Packages) 应当登场的时刻。
包是指一个包含模块与一个特殊的 __init__.py 文件的文件夹,后者向 Python 表明这一文件夹是特别的,因为其包含了 Python 模块,我们以一个 world 包为例子进行熟悉
这便是一个包的大概长相,是一种可以组织模块的另一种层次结构。