python自定义模块

241 阅读3分钟

模块的引入方式: 1.import 模块名:导入模块中的所有内容(引入多个用逗号分隔) import random,time

2.from 模块名 import 函数名1,函数名2… 导入部分模块 (导入部分的话直接使用)

3.from 模块名 import * 导入所有,有约束 需要在__init__.py文件中添加属性: all =[ “函数1”,“函数2”… ]

引入自定义模块 第一种,直接 import

这里有个大前提,就是你的py执行文件和模块同属于同个目录(父级目录)

image.png

image.png

第二种,通过sys模块导入自定义模块的path

如果执行文件和模块不在同一目录,这时候直接import是找不到自定义模块的

sys模块是python内置的,因此我们导入自定义模块的步骤如下:

image.png

image.png

注意:相同级别的导入,如果用sys拼接路径的话,只需要到目录,而不是py文件,然后直接import 导入即可!!

image.png

第三种: venv文件下–》lib–》site-packages–》新建文件夹–》存入模块

导入方式: import 文件夹.模块 文件夹.模块.属性(方法)

image.png

image.png 第四种 动态导入: import sys sys.path.insert(0,r"C:\Users\Administrator\Desktop") print(sys.path) import(“hi.py”)#导入的是包名,然后再通过from 包名 import 模块名

image.png

image.png 包 通常包总是一个目录,可以使用import导入包,或者from + import来导入包中的部分模块。 包目录下为首的一个文件便是 init.py。然后是一些模块文件和子目录,假如子目录中也有 init.py 那么它就是这个包的子包了。

在创建许许多多模块后,我们可能希望将某些功能相近的文件组织在同一文件夹下,这里就需要运用包的概念了。

包对应于文件夹,使用包的方式跟模块也类似,唯一需要注意的是,当文件夹当作包使用时,文件夹需要包含__init__.py文件,主要是为了避免将文件夹名当作普通的字符串。init.py的内容可以为空,一般用来进行包的某些初始化工作或者设置__all__值,__all__是在from package-name import *这语句使用的,全部导出定义过的模块。

————————————————

image.png

image.png

image.png init.py的主要作用是:

Python中package的标识,不能删除

定义__all__用来模糊导入(from package-name import *)

编写Python代码(不建议在__init__中写python模块,可以在包中在创建另外的模块来写,尽量保证__init__.py简单)

特点: python包是: 包是一个有层次的文件目录结构,它定义了由n个模块或n个子包组成的python应用程序执行环境。 通俗一点:包是一个包含__init__.py 文件的目录,该目录下一定得有这个__init__.py文件和其它模块或子包。 包将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py 文件,那么这个文件夹就称之为包有效避免模块名称冲突问题,让应用组织结构更加清晰

init.py 控制着包的导入行为 init.py为空仅仅是把这个包导入,不会导入包中的模块 all__在__init.py文件中,定义一个__all__变量,它控制着 from 包名 import *时导入的模块

参考网址: blog.csdn.net/pxklove1214…