创建自己的模块是很容易的,你一直在这样做,始终都是!
这是因为每个Python程序就是一个模块。 你只需要确保它有一个.py扩展名。下面的例子会让你明白。
例子(保存为mymodule.py):
def sayhi(): print('嗨,这是我的模块在讲话。') __version__ = '0.1'
上面的是模块的一个示例。正如您可以看到的,和我们通过的Python程序相比,没有什么特别的。接下来我们要看如何在我们的其它程序中使用这个模块。
另一个模块(保存为mymodule_demo.py):
import mymodule mymodule.sayhi() print ('版本', mymodule.__version__)
如果 mymodule.py 和 mymodule_demo.py 在同一目录下,则输出:
嗨,这是我的模块在讲话。
版本 0.1
它是如何工作的:
注意,我们使用点符号(.)来访问模块的成员。Python充分重用相同的符号产生了独特的’神谕的’的感觉,这样我们不需要不断学习新的方法来做事情。
这是使用from..import语法的一个版本(保存为mymodule_demo2.py):
from mymodule import sayhi, __version__ sayhi() print('版本', __version__)
mymodule_demo2.py和mymodule_demo.py的输出相同。
注意,如果在导入模块中已经有一个__version__名字的声明,这里会有一个冲突。这也可能是因为它是常见的做法–对于每个模块使用这个名字声明它的版本号。因此,总是推荐选择import语句,虽然它可能让你的程序有点长。
你还可以使用:
from mymodule import *
这将导入所有的公共名称如 sayhi,但不会导入__version__,因为它始于双下划线。
模块和文件
如果说模块是按照逻辑来组织 Python 代码的方法,那么文件便是物理层上组织模块的方法。
因此,一个文件被看作是一个独立模块,一个模块也可以被看作是一个文件。 模块的文件名就是模块的名字加上扩展名 .py。与其它可以导入类(class)的语言不同,在 Python 中你导入的是模块或模块属性。