前文
形象生动的解释什么是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.py
178
I , like
54kg
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 love
from 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.py
I , like
178
Process finished with exit code 0
PS: 部分释义来源于网络检索整理,如有侵权请联系删除