news 2026/4/18 23:55:20

Python模块相关知识点小结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python模块相关知识点小结

本文实例讲述了Python模块相关知识点。分享给大家供大家参考,具体如下:

1.模块

定义:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是以.py结尾的python文件(文件名:test.py,对应的模块名:test)。

:用来从逻辑上组织模块的,本质就是文件夹(目录),必须带有一个__init__.py文件。

导入包的本质就是解释这个包下面的__init__.py文件。

在某个模块下需要导入某一个包下面的内容,需要在包下面的__init__.py文件中修改导入方式,语法为:from . import module_name #.表示当前路径下

模块导入方法

1

2

3

4

5

6

7

8

9

Import module_name(模块名)===>>实质导出的是模块名称 name.test()

Import module_name,m1,m2

frommodule(模块)import*(函数)===>实质是把代码复制到当前位置(不建议 )

frommoduleimportmodule_name,m1,m2

frommoduleimportmodule_name as modele_name_from_wfb (as取别名)

import本质(路径搜索和搜索路径):

(1)Import module_name ===》把导入的模块的全部代码统一解释一遍,然后赋值给module_name这个变量,例如:module_name=”modele_name.py all code"。【module_name.name】

Import module_name---->执行module_name.py---->module_name.py的路径---sys.path

(2)from module import module_name ==》把module 模块中的module_name部分放到当前文件执行一遍。【name()】

总结:导入模块的本质就是把python文件解释一遍。

2.导入不在同一目录下的文件或者包:

由于导入模块或包的实质是在系统的环境变量(路径)下寻找所导入的文件或者是否存在,存在即可正确执行,否则则需要将文件或者包的绝对路径动态加入到系统的环境变量中。使用sys,os模块

1

2

3

4

5

Import sys,os

lujin=os.path.dirname(os.path.abspath(__file__))

Sys.path.append(lujin)

目的是:在当前文件中获得指定文件或包的路径(父级目录)。

解释:

os.path.abspath(__file__) 获取当前文件的绝对路径

os.path.dirname:获取当前文件的父级目录。

Sys.path.append(lujin):将所获取的路径加入到系统环境变量中。

3.导入优化

(1) Import module_name

module_name.name()。。

实质:先找模块,在找该模块下的方法.【查找多了效率不高。】

(2) from module_name import name

name() 。。

实质:把模块中的方法拿到指定位置执行一遍。相比import少了多次查找的过程.

4.模块分类

a.标准库(内置)

1. time 和datetime.

gmtime():获取标准时间(0时区)

localtime():获取本地时间(东八区)

time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()) # %Y对应tm_year %m对应tm.mon

5.json和pickle模块

Json模块提供了四个功能:dumps、dump、loads、load

pickle模块提供了四个功能:dumps、dump、loads、load

.json和pickle模块只建议dumps和loads一次,否则需要根据之前的顺序依次取出来很麻烦,dumps序列化为字符串。

6. shelve模块

shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式,【可理解为可以实现多次的dumps和、loads】

使用=》

1

2

3

importshelve

d=shelve.open('shelve_test')#打开一个文件

存:d[“key”]=value

取:d,get(“key”)

加密模块

hashlib模块

对中/英文的加密:

1

2

3

4

5

6

7

importhashlib

m=hashlib.md5()

m.update(b"Hello")

m.update("It's me 你好".encode(encoding='utf-8'))

对信息的加密:

1

2

3

importhmac

m=hmac.new(b'天王盖地虎','宝塔镇河妖'.encode(encoding='utf-8')

b'天王盖地虎':必须是bytes类型

'宝塔镇河妖'.encode(encoding='utf-8':对含有中文的需要进行编码(encode)成二进制。主要是有无b的区别。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 23:44:13

语义分割实战:如何正确保存和加载你的预测结果Mask(附Python代码)

语义分割实战:高效保存与加载预测结果的完整指南 在计算机视觉项目中,语义分割模型的输出结果通常以二维数组形式呈现,每个像素点对应一个类别标签。这些看似简单的数值矩阵,在实际工程化过程中却可能成为"暗礁区"——我…

作者头像 李华
网站建设 2026/4/18 23:40:18

Java 内存泄漏排查的实战技巧

Java内存泄漏排查实战指南 在Java开发中,内存泄漏是常见却棘手的问题。随着应用运行时间增长,未被释放的对象逐渐堆积,最终导致内存溢出(OOM)。如何高效定位和解决这类问题?以下是几个实战技巧&#xff0c…

作者头像 李华
网站建设 2026/4/18 23:34:17

3分钟快速上手:如何用Vue 3 Cron组件告别复杂定时任务配置

3分钟快速上手:如何用Vue 3 Cron组件告别复杂定时任务配置 【免费下载链接】no-vue3-cron 这是一个 cron 表达式生成插件,基于 vue3.0 与 element-plus 实现 项目地址: https://gitcode.com/gh_mirrors/no/no-vue3-cron 还在为编写复杂的Cron表达式而头疼吗&…

作者头像 李华
网站建设 2026/4/18 23:29:19

实战指南:从零到一掌握Logit回归全流程

1. 什么是Logit回归?它能解决什么问题? 第一次接触Logit回归时,我也被这个专业名词吓到了。后来在实际项目中用了才发现,它其实就是处理分类问题的利器。简单来说,当你的因变量Y是"是/否"、"买/不买&qu…

作者头像 李华