Python 自定义模块

模块的引入方式:

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

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

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

引入自定义模块

第一种,直接 import

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

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

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

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

先导入sys模块

然后通过sys.path.append(path) 函数来导入自定义模块所在的目录

导入自定义模块。

在这里插入图片描述

注意:相同级别的导入,如果用sys拼接路径的话,只需要到目录,而不是py文件,然后直接import
导入即可!!
在这里插入图片描述
第三种
venv文件下–》lib–》site-packages–》新建文件夹–》存入模块

导入方式:
import 文件夹.模块
文件夹.模块.属性(方法)
在这里插入图片描述在这里插入图片描述

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

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

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

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

在这里插入图片描述

在这里插入图片描述

init.py的主要作用是:

  1. Python中package的标识,不能删除

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

  3. 编写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 *时导入的模块

  • 11
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值