python模块_一文提升你的Python能力——定义模块、说明模块和测试模块

上次和大家探讨了关于Python模块化编程的东东,可能大家会问了:我已经了解了Python模块化编程的精髓了,但是我能不能自己定义模块呢?

先说答案,答案是当然能哈~

下面就和大家探讨一下关于定义模块、说明模块和测试模块相关的东东,那我们就开始吧!


首先,说一下:定义模块

首先来个灵魂拷问问题?模块到底是啥呢?该怎么定义自己的模块呢?

模块呀,当然就是Python程序了,到这可能你会说“废话”,这还真不是废话哈,因为所有的Python程序都可以作为模块进行导入哦,也就是说,你随便写个Python程序,统统都可以作为模块导入,并且只要你导入了模块,你就可以肆无忌惮的使用该模块内的所有成员了哦。

下面举个“栗子”:

cddb2495d63c9a6d2c0941967eb608e5.png

先对这个“栗子”简单说明一下吧,在该“栗子”中呢,第1行执行了一条简单的输出语句哦,然后第3行定义了一个变量,然后又定义了一个say_hello()函数,最后定义了一个Friend类。到这你有木有发现呢?这和普通的Python程序木有啥区别哦,你的发现是对的哦,但这仍然可以作为模块来导入哦。

到这可能大家又有问题了:那使用模块有啥好处呢?好处当然有了,比如说像上面“栗子”中的代码一样,将需要使用的一些单元东东定义在模块中,那么在日后使用时不管哪个程序只要导入了这个模块,这个程序就可以使用这个模块中的所有东东了哦,这就是常说的复用,对于大工程开发的好处是大大滴,而且呢,使模块,你还能避免每个程序都需要重新定义这些模块中的东东的坑哦。

再补充一句:其实呢,模块文件的文件名就是模块名哦,比如上面“栗子”module1.py的模块名就是module1哦。

好啦,说明白了定义模块,下面就说一下说明模块吧!


说明模块

啥叫说明模块呢?又是灵魂拷问哈?说明模块说白了就是给模块添加说明语言(文档)哦!

因为在实际的工程开发,尤其是在大项目中,整个项目是由一个团队共同完成的哦,每个人可能负责不能的东东,这时就需要为模块编写说明文档了哦,因为如果木有说明文档,你团队中的其他成员看你的代码可能就是一脸懵逼哦!

那该怎样为模块添加说明文档呢?其实呢,还是挺简单滴,你只有在模块开始处定义一个字符串直接量就可以了哦。

还是举个“栗子”吧:

6a53decb9b22b614fada5d756cd51bc6.png

上面“栗子”中红色方框中的这段话就是为模块添加的说明东东哦!

最后补充一句:对于这个说明的话,你可以通过模块的__doc__属性来访问文档哦。

好了,到此你已经会定义模块并会为模块添加说明文档了,但是人非圣贤,谁能保证自己写的“码子”完全正确呢,这时就要凸显测试模块的重要性了,那该怎么对模块进行测试呢?不要着急哦,下面告诉大家!


测试模块

测试模块就是给模块添加一些测试代码的东东!通过测试后,你才能保证你所写的模块中的每个单元东东都正确哦!

前面已经说了哦,模块呢,就是Python代码,因此呀,我们可以使用Python命令来解释并执行这些模块程序哦,但是呢,条件还是有的,就是你的模块中必须包含可执行的代码!

比如上面的“栗子”,如果你用pythong module1.py运行,就只执行print(‘俺是模块哦’)这一句,这就尴尬了哦,因为模块中你所定义的函数呀、类呀都木有测试到哦。

那该怎么搞呢?你可能会用下面的方法:

481681be9dacb55c2c12c5fc1486894b.png

到这你可能满满滴成就感,但是呢,这有问题的,因为如果你这个模块被其他程序导入使用时,你所编写的这三个测试函数都会自动执行,这显然不是你期望的效果哦,是不是到这有点“捉急”了呢?要相信Python哦,不然Python就不会这么火爆了!

其实呢,对于模块的测试完全可以借助所有的模块内置的__name__变量进行区分哦,因为假如直接使用python命令来运行一个模块,那么__name__变量的值就是__main__;还有假如哦,假如这个模块中被导入到其他程序中了,那么__name__变量的值就是模块名哦。

好了,到此答案就出来了,就是如果你希望测试函数只有在使用python命令直接运行时才执行,那么你就可以在测试函数中增加判断了哦,就是说只有当__name__属性为__main__时才调用测试函数哦。

将上面“栗子”中的测试代码改为如下“正规军”风格:

89b000bebbae16e7cd5e0ef00a911284.png

最后运行一下看一下效果吧,效果如下:

3bf1145e33b2774853f75bda266708a5.png

敬请关注“品位集结号”,为您带来意外的小惊喜!

7096ed140d8a60e897d4397120031b88.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值