网站首页 > 基础教程 正文
上次和大家探讨了关于Python模块化编程的东东,可能大家会问了:我已经了解了Python模块化编程的精髓了,但是我能不能自己定义模块呢?
先说答案,答案是当然能哈~
下面就和大家探讨一下关于定义模块、说明模块和测试模块相关的东东,那我们就开始吧!
首先,说一下:定义模块
首先来个灵魂拷问问题?模块到底是啥呢?该怎么定义自己的模块呢?
模块呀,当然就是Python程序了,到这可能你会说“废话”,这还真不是废话哈,因为所有的Python程序都可以作为模块进行导入哦,也就是说,你随便写个Python程序,统统都可以作为模块导入,并且只要你导入了模块,你就可以肆无忌惮的使用该模块内的所有成员了哦。
下面举个“栗子”:
先对这个“栗子”简单说明一下吧,在该“栗子”中呢,第1行执行了一条简单的输出语句哦,然后第3行定义了一个变量,然后又定义了一个say_hello()函数,最后定义了一个Friend类。到这你有木有发现呢?这和普通的Python程序木有啥区别哦,你的发现是对的哦,但这仍然可以作为模块来导入哦。
到这可能大家又有问题了:那使用模块有啥好处呢?好处当然有了,比如说像上面“栗子”中的代码一样,将需要使用的一些单元东东定义在模块中,那么在日后使用时不管哪个程序只要导入了这个模块,这个程序就可以使用这个模块中的所有东东了哦,这就是常说的复用,对于大工程开发的好处是大大滴,而且呢,使模块,你还能避免每个程序都需要重新定义这些模块中的东东的坑哦。
再补充一句:其实呢,模块文件的文件名就是模块名哦,比如上面“栗子”module1.py的模块名就是module1哦。
好啦,说明白了定义模块,下面就说一下说明模块吧!
说明模块
啥叫说明模块呢?又是灵魂拷问哈?说明模块说白了就是给模块添加说明语言(文档)哦!
因为在实际的工程开发,尤其是在大项目中,整个项目是由一个团队共同完成的哦,每个人可能负责不能的东东,这时就需要为模块编写说明文档了哦,因为如果木有说明文档,你团队中的其他成员看你的代码可能就是一脸懵逼哦!
那该怎样为模块添加说明文档呢?其实呢,还是挺简单滴,你只有在模块开始处定义一个字符串直接量就可以了哦。
还是举个“栗子”吧:
上面“栗子”中红色方框中的这段话就是为模块添加的说明东东哦!
最后补充一句:对于这个说明的话,你可以通过模块的__doc__属性来访问文档哦。
好了,到此你已经会定义模块并会为模块添加说明文档了,但是人非圣贤,谁能保证自己写的“码子”完全正确呢,这时就要凸显测试模块的重要性了,那该怎么对模块进行测试呢?不要着急哦,下面告诉大家!
测试模块
测试模块就是给模块添加一些测试代码的东东!通过测试后,你才能保证你所写的模块中的每个单元东东都正确哦!
前面已经说了哦,模块呢,就是Python代码,因此呀,我们可以使用Python命令来解释并执行这些模块程序哦,但是呢,条件还是有的,就是你的模块中必须包含可执行的代码!
比如上面的“栗子”,如果你用pythong module1.py运行,就只执行print(‘俺是模块哦’)这一句,这就尴尬了哦,因为模块中你所定义的函数呀、类呀都木有测试到哦。
那该怎么搞呢?你可能会用下面的方法:
到这你可能满满滴成就感,但是呢,这有问题的,因为如果你这个模块被其他程序导入使用时,你所编写的这三个测试函数都会自动执行,这显然不是你期望的效果哦,是不是到这有点“捉急”了呢?要相信Python哦,不然Python就不会这么火爆了!
其实呢,对于模块的测试完全可以借助所有的模块内置的__name__变量进行区分哦,因为假如直接使用python命令来运行一个模块,那么__name__变量的值就是__main__;还有假如哦,假如这个模块中被导入到其他程序中了,那么__name__变量的值就是模块名哦。
好了,到此答案就出来了,就是如果你希望测试函数只有在使用python命令直接运行时才执行,那么你就可以在测试函数中增加判断了哦,就是说只有当__name__属性为__main__时才调用测试函数哦。
将上面“栗子”中的测试代码改为如下“正规军”风格:
最后运行一下看一下效果吧,效果如下:
敬请关注“品位集结号”,为您带来意外的小惊喜!
- 上一篇: 一、Python 模块简介
- 下一篇: 一文提升你的编程能力,Python能力提升系列——加载模块
猜你喜欢
- 2024-11-22 Python 语言学习要点记录8-模块
- 2024-11-22 python-模块和包
- 2024-11-22 python组织和管理代码:模块和包、子模块和子包概念及举例
- 2024-11-22 每个 Python 开发人员需要掌握的 5 个基本内置模块
- 2024-11-22 一文提升你的编程能力,Python能力提升系列——加载模块
- 2024-11-22 一、Python 模块简介
- 2024-11-22 Python 中引入一个文件,模块的概念
- 2024-11-22 Python基础-模组(类库、模块)
- 2024-11-22 python编程系列教程:9-模块的使用
- 2024-11-22 Python学习点滴02 - 弄清模块、包和库(1)
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)