自动化测试在路上 | 导入自定义模块

* 前文 

形象生动的解释什么是Python的类与对象 |  一文带你了解什么是 " 对象的属性 " | 自动化测试在路上 |  函数及调用 今天接着给大家分享如何导入自定义模块,分享2种方法

Title:导入自定义模块

*简介

模块是Python语言中非常重要的概念,当把一组代码保存为.py格式的文件时,这个文件就是一个模块

在Python体系中,一个Python文件就是一个模块,前面所提到的.py文件其实都是模块

模块通常由函数和类组成,在这里自定义一个study.py的文件,即定义一个名为study的模块

在study的这个模块中定义一个名为love()的函数,同时在study的模块中还定义了一个名为Shuaige的类,而在Shuaige这个类中又定义shengao、tizhong两个方法,该模块的具体代码如下

*代码实例



def love():    print("I , like")

class shuaige:    def shengao(self):        print("178")    def tizhong(self):        print("54kg")

*代码分析

a. 第01行代码,定义了一个love()函数

b. 第02行代码,定义一个名为Shuaige的类,并且类中包含了两个方法

* 通过import语句导入自定义的模块

当study模块创建成功后,就可以调用study模块中的函数和类中的方法,如何调用呢?

方法很简单,在study.py文件(模块)所在的目录创建一个空白py文件,并将其命名为study_one.py

通过Pycharm代码编辑器打开study_one.py这个空白文件,然后study_one.py文件中通过import语句把myboy模块导入就可以达到调用myboy模块中的函数和方法的目的,具体代码如下

*代码实例

import study

list = study.shuaige()

study.love()

list.tizhong()

*代码分析

a. 第01行代码,通过import关键字导入study模块

b. 第02行代码,在Shuaige类中创建一个名叫lisi的帅哥实例,由于调用的是study模块中的类来创建实例,所以类名前面也需要加上模块名称

c. 第03行代码,调用study模块中的love()函数,调用love()函数时需要加入模块名称

d. 第04行代码,由于lisi这个帅哥实例是从Shuaige这个类“出炉”的,那它自然可以调用Shuaige这个类里的方法

*代码输出



F:\Python\Python38-32\python.exe F:/Python/Python38-32/python_code/Study/autotest_unittest/study_one.py178I , like54kg

Process finished with exit code 0

*注意事项

在前文的例子中已经新建了一个zhangsan帅哥实例,怎么这里又新建了一个lisi帅哥实例呢?

在一个类中可以新建多个实例,Shuaige这个类代表的是所有帅哥,它里面的方法和属性也是所有帅哥共有的属性和方法,而不是指某一个帅哥的

所以每当从Shuaige类里“出炉”一个新帅哥时,这个帅哥就拥有了这些方法和属性

study.py文件和study_one.py文件需要放在同一目录下,如不放在一个目录下,study_one模块将无法调用study模块中的函数和其类中的方法,对其他放置的方法初学者可暂时不考虑

Title:通过form…import语句导入自定义模块

如果在调用模块中的函数和类中的方法时不想使用模块名称这个前缀时,还可以使用form…import语句进行导入,如study_one.py文件(study_one模块)中的代码还可以这样写成如下形式

*代码实例

from study import lovefrom study import shuaige

list = shuaige()love()list.shengao()

*代码分析

a. 第01行代码,从myboy模块中直接导入love()函数

b. 第02行代码,从myboy模块中直接导入Shuaige类

c. 第03行代码,在Shuaige类中创建一个名叫lisi的帅哥实例,此时Shuaige类前面没有加模块名称这个前缀

d. 第04行代码,由于采用了form…import语句,所以在myboy_one模块中可以直接调用myboy模块中的love()函数,并且不用加模块名这个前缀

e. 第05行代码,由于lisi这个帅哥实例是从Shuaige类“出炉”的,那它自然可以调用Shuaige类里的tiao_wu()这个方法。

*代码输出F:\Python\Python38-32\python.exe F:/Python/Python38-32/python_code/Study/autotest_unittest/study_one.pyI , like178

Process finished with exit code 0

PS: 部分释义来源于网络检索整理,如有侵权请联系删除

加小编微信加测试开发群

查看更多精彩文章,请订阅以下公众号

推荐阅读

Pytest | 参数化处理三种类型 [ 列表、元组、字典]

Pytest框架Fixture+Parametrize参数化应用篇

测试开发面试题 [ Python编程+selenium基础使用 ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值