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
写一段代码测试一下,mymodule3.py
__author__ = 'zWX231671'# 可以import模块中的方法和常量,其实也都是变量。# 不推荐使用这种方法,命名空间不明确,而且容易造成变量的混淆from mymodule import show, versionshow()print('Version is ', version)结果为:
0 0
- GoodZhang在学Python(七)--代码重用之模块
- GoodZhang在学Python(一)--初探Python
- GoodZhang在学Python(六)--字符串格式化
- GoodZhang在学Python(八)--基本数据结构
- GoodZhang在学Python(二)--Python环境安装配置&HelloWorld
- GoodZhang在学Python(四)--Python中的函数
- GoodZhang在学Python(九)--序列和参考
- GoodZhang在学Python(十)--类和对象
- GoodZhang在学Python(十一)--下一步应该学啥
- GoodZhang在学Python(十二)--简单客户端、服务端socket通信
- GoodZhang在学Python(五)--Python中的文档字符串(docStrings)
- GoodZhang在学Python(三)--控制流if while for break continue
- GoodZhang在学Python(十三)--Python3数据get与post提交
- GoodZhang在学Python(十四)--Python3中urllib库常用操作
- 模块代码重用之BaseDao
- Python基础(六)——重用代码:函数、模块、方法
- 在学python(要点整理)
- JavaScript重构(七):重用老代码
- 使用VO和EO的AlternateKey特性提高查询性能
- Apache Rewrite处理?问号后的请求参数
- 【转】在可停靠窗格中使用对话框来实现可视化设计
- 帝国四大王国多工具(IOS)(安卓)
- (a + 7) & (~7)
- GoodZhang在学Python(七)--代码重用之模块
- 当表结构发生变化时,如何同步到ADF-BC中的EO?
- 爬取href超链接,正则指定目标结果
- H3C交换机配置端口聚合
- 浅谈Eclipse的更新、升级和MyEclipse插件的安装方法
- hdu~2717(bfs)
- Hadoop中去重
- 对讲机选项
- 对您的电子商务订单与Magento优秀的管理