GoodZhang在学Python(七)--代码重用之模块

来源:互联网 发布:欧洲人用淘宝吗 编辑:程序博客网 时间:2024/06/06 00:27

很多的编程思想都是想尽可能的做到代码重用,通过之前的学习,了解到在Python我们可以通过写函数来实现代码重用,但是如果我想重用多段函数同时需要重用多个变量要怎么办呢,对,通过模块,通过封装模块来实现

模块是什么呢,简单说就是一个以.py为扩展名的文件,是包含了我们所定义的函数及变量的文件。


先通过一个例子来直观的了解一下:

模块程序:mymodule.py

__author__ = 'zWX231671'# Filename mymoduledef show():    print('show me the meaning')version = '1.0'# print('import by other program')
调用程序:mymodule2.py
__author__ = 'zWX231671'import mymodule# 引用其他模块mymodule.show()print('Version: ', mymodule.version)
执行mymodule2.py结果如下:



你或许已经发现在mymodule.py中,最后有一行代码是注释掉的,如果打开,会是什么结果呢?

是这样的:


刚刚打开的那段注释代码,首先在控制台打印了一段话,是早于我们的函数调用及变量打印的,但是我们在 mymodule2.py中,我们并未主动调用打印方法,原来是一个模块在首次被引入时,其主模块会主动执行

那么,如果我们想实现在引入程序时不运行其主块,只有当其自身运行时才运行主块的效果,需要怎么办呢? 这是可以通过使用 __name__ 属性来实现的

继续修改mymodule.py程序,将其修改为:

__author__ = 'zWX231671'# Filename mymoduledef show():    print('show me the meaning')version = '1.0'if __name__ == '__main__':    print('this code is running by itself')else:    print('import by other program')
单独运行mymodule.py会打印出:

this code is running by itself
运行mymodule.py结果是:

import by other programshow me the meaningVersion:  1.0


python还提供了一种导入方法,from ... import ... 可以导入模块中的部分方法及变量,不过,不推荐使用这种方法。变量的命名空间不清楚而且容易造成混淆而出错

写一段代码测试一下,mymodule3.py

__author__ = 'zWX231671'# 可以import模块中的方法和常量,其实也都是变量。# 不推荐使用这种方法,命名空间不明确,而且容易造成变量的混淆from mymodule import show, versionshow()print('Version is ', version)
结果为:









0 0
原创粉丝点击