Python自定义模块

2025-04-19 05:43:40
Python自定义模块

2、在掌握了import模块的语法之后,下一个问题来了。什么是模块?也许有些读者开始磨蹭了。如何定义自己的模块?模块是一个python程序。任何Python程序都可以作为模块导入。我们之前编写的所有Python程序都可以作为模块导入。换句话说,任意编写的Python程序都可以作为模块导入。对于任何程序,只要导入模块,就可以使用模块内的所有成员。下面的程序定义了一个简单的模块(用module1编写)。Py文件)

Python自定义模块

3、上面程序中的第一行代码碌巫谫浪执行一个简单的output语句,第二行定义mybook变量。接下来,程序定义一个say_Hi()函数,然后定义一个user类。不难发现,这个程序与我们之前粕盘镱嘧编写的python程序差别不大,但它仍然可以作为模块导入。使用模块的好处是,如果使用程序需要使用的程序单元(例如,刚刚定义的)Hi()函数和用户类)都是在模块中定义的。无论导入哪个程序,程序都可以使用模块中包含的程序单元。这样,它可以提供良好的重用(导入模块和使用模块),从而避免为每个程序重新定义这些程序单元。记录模块与上面描述的函数和类类似,在实际开发中,经常需要为模块编写一个描述文档,否则其他开发人员将不知道该模块的功能是什么,它包含哪些函数。编写模块文档很容易,只需在模块的开头定义一个字符串。例如,在上述程序的第一行代码之前添加以下内容:

Python自定义模块

4、此字符串的内容将用作模块的说明块,可以通过_uuDoc_Uu属性访问它来访戒彬尢欤问文档。为模块编写测试代码在模块编写完成后,可能需要为模块编写一些测试代码,以测试模忧栝牯嚣块中的每个程序单元是否能正常运行。因为模块实际上是一个python程序,所以只要模块包含可执行代码,我们就可以使用python命令来解释和执行模块程序。例如,使用python module1.py(程序文件名)命令运行上述模块程序,可以看到以下输出结果:

Python自定义模块

5、上面的输出是因为模1。Py程序包含print语句。但是棋盘中的变量、函数和类还没有经过测试,所以我们还应该为这些变量、函数和类提供测试程序。例如,可以为上面的module1.py添加以下测试代码:

Python自定义模块

6、上面的代码为module1定义了三个函数,用于测试模块中的变量、函数和类,但这三个函数不被调用。因此,如果您弋讥孜求使用Python命令来运行上述模块,程序不会运行它们。如果你简单地调用上面的测试程序,就会产生问题,也就是说,每次其他程序导入模块时,这三个测试函数都会自动运行,这显然不是我们期望看到的结果。此时,所期望的效果是,如果模块直接用Python命令运行(相当于test),则程序应执行模块的测试功能;如果其他程序导入模块,则程序不应执行模块的测试功能。此时,可以使用内置的“名称”变量。如果直接使用Python命令运行一个模块,则name变量的值为_优main_u;如果将模块导入另一个程序中,则变量的值为模块名。因此,如果只想在直接使用python命令运行测试函数时才执行测试函数,那么可以在调用测试函数“name”时添加判断来调用测试函数。向模块添加以下代码:

Python自定义模块

7、此时,再次使用python module1.py命令运行该模块,可以看到以下输出结果:

Python自定义模块

8、从上面的测试结果来看,当使用python命令直接运行模块时,会执行模块中的测试函数。定义模块之后,下一步是让python系统找到并加载模块。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢