首页 > Python > Python模块和包
Python自定义模块
到目前为止,读者已经掌握了导入 Python 标准库并使用其成员(主要是函数)的方法,接下来要解决的问题是,怎样自定义一个模块呢?
前面章节中讲过,Python 模块就是 Python 程序,换句话说,只要是 Python 程序,都可以作为模块导入。例如,下面定义了一个简单的模块(编写在 demo.py 文件中):
但通常情况下,为了检验模板中代码的正确性,我们往往需要为其设计一段测试代码,例如:
在此基础上,我们可以新建一个 test.py 文件,并在该文件中使用 demo.py 模板文件,即使用 import 语句导入 demo.py:
要实现这个效果,可以借助 Python 内置的 __name__ 变量。当直接运行一个模块时,name 变量的值为 __main__;而将模块被导入其他程序中并运行该程序时,处于模块中的 __name__ 变量的值就变成了模块名。因此,如果希望测试函数只有在直接运行模块文件时才执行,则可在调用测试函数时增加判断,即只有当 __name__ =='__main__' 时才调用测试函数。
因此,我们可以修改 demo.py 模板文件中的测试代码为:
为自定义模块添加说明文档,和函数或类的添加方法相同,即只需在模块开头的位置定义一个字符串即可。例如,为 demo.py 模板文件添加一个说明文档:
在此基础上,我们可以通过模板的 __doc__ 属性,来访问模板的说明文档。例如,在 test.py 文件中添加如下代码:
前面章节中讲过,Python 模块就是 Python 程序,换句话说,只要是 Python 程序,都可以作为模块导入。例如,下面定义了一个简单的模块(编写在 demo.py 文件中):
name = "Python教程" add = "https://www.xinbaoku.com/python" print(name,add) def say(): print("人生苦短,我学Python!") class CLanguage: def __init__(self,name,add): self.name = name self.add = add def say(self): print(self.name,self.add)可以看到,我们在 demo.py 文件中放置了变量(name 和 add)、函数( say() )以及一个 Clanguage 类,该文件就可以作为一个模板。
但通常情况下,为了检验模板中代码的正确性,我们往往需要为其设计一段测试代码,例如:
say() clangs = CLanguage("新宝库","https://www.xinbaoku.com") clangs.say()运行 demo.py 文件,其执行结果为:
Python教程 https://www.xinbaoku.com/python
人生苦短,我学Python!
C语言中文 https://www.xinbaoku.com
在此基础上,我们可以新建一个 test.py 文件,并在该文件中使用 demo.py 模板文件,即使用 import 语句导入 demo.py:
import demo
此时,如果直接运行 test.py 文件,其执行结果为:注意,虽然 demo 模板文件的全称为 demo.py,但在使用 import 语句导入时,只需要使用该模板文件的名称即可。
Python教程 https://www.xinbaoku.com/python
人生苦短,我学Python!
C语言中文 https://www.xinbaoku.com
要实现这个效果,可以借助 Python 内置的 __name__ 变量。当直接运行一个模块时,name 变量的值为 __main__;而将模块被导入其他程序中并运行该程序时,处于模块中的 __name__ 变量的值就变成了模块名。因此,如果希望测试函数只有在直接运行模块文件时才执行,则可在调用测试函数时增加判断,即只有当 __name__ =='__main__' 时才调用测试函数。
因此,我们可以修改 demo.py 模板文件中的测试代码为:
if __name__ == '__main__': say() clangs = CLanguage("新宝库","https://www.xinbaoku.com") clangs.say()这样,当我们直接运行 demo.py 模板文件时,其执行结果不变;而运行 test.py 文件时,其执行结果为:
Python教程 https://www.xinbaoku.com/python
显然,这里执行的仅是模板文件中的输出语句,测试代码并未执行。自定义模块编写说明文档
我们知道,在定义函数或者类时,可以为其添加说明文档,以方便用户清楚的知道该函数或者类的功能。自定义模块也不例外。为自定义模块添加说明文档,和函数或类的添加方法相同,即只需在模块开头的位置定义一个字符串即可。例如,为 demo.py 模板文件添加一个说明文档:
'''
demo 模块中包含以下内容:
name 字符串变量:初始值为“Python教程”
add 字符串变量:初始值为“https://www.xinbaoku.com/python”
say() 函数
CLanguage类:包含 name 和 add 属性和 say() 方法。
'''
在此基础上,我们可以通过模板的 __doc__ 属性,来访问模板的说明文档。例如,在 test.py 文件中添加如下代码:
import demo print(demo.__doc__)程序运行结果为:
Python教程 https://www.xinbaoku.com/python
demo 模块中包含以下内容:
name 字符串变量:初始值为“Python教程”
add 字符串变量:初始值为“https://www.xinbaoku.com/python”
say() 函数
CLanguage类:包含 name 和 add 属性和 say() 方法。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算