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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhdl11/article/details/38710451

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

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


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

模块程序:mymodule.py

__author__ = 'zWX231671'
# Filename mymodule
def 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中,最后有一行代码是注释掉的,如果打开,会是什么结果呢?

是这样的:


扫描二维码关注公众号,回复: 3255685 查看本文章

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

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

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

__author__ = 'zWX231671'
# Filename mymodule
def 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 program
show me the meaning
Version:  1.0


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

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

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









猜你喜欢

转载自blog.csdn.net/zhdl11/article/details/38710451