Python基础编程——模块的基本概念

到此,我们已经介绍了语言的大部分基础知识,不仅语言核心非常强大,还提供了其他工具以供我们在开发中使用。通过上面的两个程序,我们简单介绍了如何自定义一个模块以及在其他的程序中导入我们自定义的模块。这是因为,在主程序中时,变量的值是'&

到此,我们已经介绍了语言的大部分基础知识,不仅语言核心非常强大,还提供了其他工具以供我们在开发中使用。标准安装包含一组成为标准库的模块,例如:math、、time等。

模块

模块就是我们所编写的程序,我们在之前的章节中有使用过关键字来将模块导入到我们的程序中。如果我们要编写自己的模块,需要将编写的程序保存到一个.py的文件中,这个文件的文件名就是我们的模块名。例如:我们编写了一个.py的文件,那么在这里就是我们的模块名。在中,我们自己编写的模块所存放的路径也很重要,当导入我们自己编写的模块时,出现的最多的问题,找不到模块而导致程序执行失败。

我们在前面的章节中,所有的示例程序基本上都是编写在.py的文件中,那么我们可以将它们作为模块来导入。下面我们再来看一个简单的模块,具体如下.py程序所示:

,hello_world.py#!/usr/bin/env python# -*- coding: utf-8 -*-def hello():    print('Hello World!')

我们在另一个程序中来导入.py,具体如下.py程序所示:

test_hello_world.py#!/usr/bin/env python# -*- coding: utf-8 -*-import hello_worldhello_world.hello()程序执行结果如下所示:Hello World!

通过上面的两个程序,我们简单介绍了如何自定义一个模块以及在其他的程序中导入我们自定义的模块。

需要注意的是:模块并不是用来执行操作的,而是用于定义变量、函数、类等的,定义只需要做一次,因此导入模块一次和多次的效果相同,我们在开发中只需要导入一次模块即可。

模块的作用

模块是用来下定义的,在首次被导入程序时执行,这虽然有点用,但是用处不大。让模块值得被创建的原因在于它们像类一样,有自己的作用域。这意味着在模块中定义的类和函数以及其进行赋值的变量都将成为模块的属性。并且有了模块,能够大大提高程序的复用性,减少重复开发的工作量。

在模块中定义函数

我们先来编写一个简单的模块,只在模块中定义一个用于打招呼的函数,具体如下.py程序所示:

say_hi_module.py#!/usr/bin/env python# -*- coding: utf-8 -*-def say_hi():    print('你好,我的名字是Python编程爱好者!')

然后我们在另一个程序中导入.py模块,具体如下.py程序所示:

test_say_hi_module.py#!/usr/bin/env python# -*- coding: utf-8 -*-import say_hi_modulesay_hi_module.say_hi()程序执行结果如下所示:你好,我的名字是Python编程爱好者!

上面的.py程序本身也是一个模块,执行这个模块时,相当于在这个模块的作用域内定义了函数,在模块的全局作用域内定义的我们都可以直接使用类似.()这样的方式进行访问。

Python基础编程——模块的基本概念

我们没有在.py程序中重新定义函数,主要是为了代码能够复用,不用在需要使用函数的地方进行重新定义。因此,为了提高代码的复用性,务必将其模块化。

在模块中添加测试代码

模块用于定义函数和类等,但在有些情况下app模块名称功能介绍,添加一些测试代码来检查情况是否符合预期。例如我们在前面的.py程序中添加一行调用函数的代码,看是否能够打印我们想要的结果,具体入下.py程序所示:

say_hi_module.py#!/usr/bin/env python# -*- coding: utf-8 -*-def say_hi():    print('你好,我的名字是Python编程爱好者!')# 测试代码say_hi()

如果将这个模块作为普通程序运行app模块名称功能介绍,他依然可以正常运行,并打印我们想要的结果。但是如果是将其作为一个模块,在另一个程序中导入,以便我们能够使用函数,测试代码也将会被执行。

这并不是我们想要的结果,要避免这种情况,关键是检查模块是作为程序运行还是被导入另一个程序。为此,我们需要使用变量。我们修改前面的模块程序,具体如下.py程序所示:

say_hi_module.py#!/usr/bin/env python# -*- coding: utf-8 -*-def say_hi():    print('你好,我的名字是Python编程爱好者!')def test():    say_hi()if __name__ == '__main__':    test()

我们再次执行程序.py时,其执行结果如下:

你好,我的名字是编程爱好者!

这是因为,在主程序中时,变量的值是'',而在导入模块中的程序中时,这个变量被设置为为模块的名称。因此在不会执行模块if语句里面的语句块。如果将这个模块作为程序运行,将会执行函数,如果是作为模块导入到其他程序中,则其与普通模块是一样的。

在上面的程序中,我们将测试代码放到了一个test函数中,虽然可以直接将其放到if语句里面,但是,这样做的好处是我们可以在导入模块的程序中对其进行测试。

总结

本节主要介绍了以下内容:

模块的概念:模块的本质就是一个.py的程序文件。模块的作用:模块是用于定义函数、类、属性等的,提高代码的复用性。在模块中定义函数的函数,在导入程序后,我们可以像访问类属性那样直接访问模块中的函数,模块中定义的类、变量也是一样的。在模块中添加测试代码,需要注意测试代码的执行条件。

下一节我们将会介绍模块的存放路径的问题,这也是我们在导入自定义模块容易出问题的地方,敬请!

如果有需要文中小程序的可以私信我哟!

创作不容易,还请点个赞!喜欢的小伙伴请点、收藏!

本文到此结束,希望对大家有所帮助。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至81118366@qq.com举报,一经查实,本站将立刻删除。发布者:简知小编,转载请注明出处:https://www.jianzixun.com/93916.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫

相关推荐

软文友链广告合作联系站长qq81118366