模块与包
1.流程控制语句2.计算机基础3.编程语言介绍4.python语言介绍5.python解释下载与安装6.python知识补充+语法入门7.基本数据类型8.基本运算符9.用户交互 输入输出方法10.字符编码11.可变与不可变数据类型12.文件操作的基本流程13.文件的基本操作14.异常处理15.深浅拷贝16.函数定义和调用17.函数的调用18.名称空间和作用域19.装饰器20.迭代器和三元运算符
21.模块与包
22.random、os、json模块23.hashlib、time模块24.正则25.datetime、sys、logging模块26.正则re模块27.常用的内置函数28.初识面向对象29.面向对象进阶30.封装、继承、多态31.常用魔法方法和元类32.网络编程初识33.网络编程进阶34.并发编程之多进程35.并发编程之多线程36.并发编程之协程模块与包
1. 导入模块与包
1.1 import语法
import xxx 模块名
# import 语句无法加载到模块下面的变量名,他只能加载到模块名
# # import 只能导入模块名
# 此时我在src包下的login_register.py模块中,我想引用add_bank模块内的方法
import add_bank
# 引用add_bank里的方法,需要加上模块名
print(add_bank.name)
import add_bank 这句话会发生那些事?
# 【1】import add_bank :先进入到 add_bank 模块里面
# 【2】加载 add_bank 模块里面的名称空间
# 【3】回到自己的文件 login 中 , 向下继续加载自己的名称空间
# 【4】login模块里面的名称空间 ---> add_bank 模块里面 + login模块里面的名称空间
print(sys.modules)
1.2 from xx import xx语法
from ... import ..
# 语句可以将 需要导入模块里面的指定变量名加载进来
# 此时我在src包下的login_register.py模块中,我想引用utils包中的Decorator的模块内的方法
from ATM.utils.Decorator import *
# * 代表模块中所有方法
# 也可以具体写某个方法名称
1.3 循环导入
- 循环导入问题指的是在一个模块加载/导入的过程中导入另外一个模块
- 而在另外一个模块中又返回来导入第一个模块中的名字
- 由于第一个模块尚未加载完毕
- 所以引用失败、抛出异常
- 究其根源就是在python中
- 同一个模块只会在第一次导入时执行其内部代码
- 再次导入该模块时
- 即便是该模块尚未完全加载完毕也不会去重复执行内部代码
1.3.1 循环引入产生的问题的解决方案
- 方案一
- 导入语句放到最后,保证在导入时,所有名字都已经加载过
- 方案二
- 导入语句放到函数中,只有在调用函数时才会执行其内部代码
2. 相对路径和绝对路径
-
绝对路径:
-
绝对路径是从文件系统的根目录(或其他参考点)开始的完整路径
-
用绝对路径时,你指定的路径是从文件系统的根目录开始的
-
示例(在 Unix/Linux 系统中):
/home/user/documents/file.txt
-
示例(在 Windows 系统中):
C:\Users\User\Documents\file.txt
-
-
相对路径:
- 相对路径是相对于当前工作目录或其他相对位置的路径
- 使用相对路径时,你指定的路径是相对于执行脚本的当前工作目录的。
- 示例:
../parent_directory/file.txt
- .代表同层目录 ..代表父级目录
3. os模块导读
3.1 什么是os模块
os
模块是 Python 标准库中的一个核心模块,提供了与操作系统交互的功能。它包含许多与文件系统、进程控制、环境变量等相关的函数
3.2 常用模块函数
# 路径操作
# 获取当前文件所在文件夹的路径,当前文件的上层路径
# os.path.dirname(__file__)
# /Users/chenxu/Documents/pythonProjects28/ATM
BASE_DIR = os.path.dirname(__file__)
# 获取当前文件的绝对路径
# os.path.abspath(path)
# /Users/chenxu/Documents/pythonProjects28/ATM/setting.py
abspath= os.path.abspath(__file__)
# 拼接路径
# os.path.join()
# /Users/chenxu/DocumentythonProjects28/ATM/database/pwd
PWD_DIR = os.path.join(DB_DIR, 'pwd')
# 判断当前路径是否存在
# os.path.exists(path)
exists = os.path.exists(p1)
# 创建文件夹
# 单层文件夹
os.mkdir(path)
# 多层文件夹
os.makedirs(path)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)