模块与包

模块与包

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)
posted @   Formerly0^0  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示