编程的一些整理
今日内容概要
- 循环导入问题
- 判断文件类型
- 模块的查找顺序
- 绝对导入与相对导入
- 模块与包
- 编程思想的演变
- 软件开发目录规范
温馨提示:工作中的项目的文件名肯定都是以英文为主
今日内容
循环导入问题
- 两个文件互相导入彼此需要的架构
- 如果两个文件直接进行相互调用在没有进行创建的时候会报错
- 导入循环的时候 保证双方使用的名字都必须提前定义好
- 正确调用方式
- 将导入模块句式写在定义句式下 也就是先导入变量和值后导入模块
name = 'jack' name = 'jim'
import B import A
print(A.name) print(B.name)
print('这是模块B') print('这是模块A')
判断文件类型
py文件可分为两种类型
1. 执行文件
1. 被导入文件
可以导入内置变量‘name’来判断执行文件共和被导入文件 当文件为被导入文件时
ig __name__ == '__main__':来进行判断
只有反馈为执行文件的时候才会执行子代码模块
直接tab就行了
模块的查找顺序
- 先从内存空间中查找
- 下面再去搜查内存模块
- 直接tm地毯式安排上 'sys.path'都找不到就g了
import md
import time
time.sleep(7)
print(md.name)
执行过程可以尝试把md文件里的name 删除
会发现任然可以调用
import md
import time
time.sleep(10)
print(time)
print(time.time(5))
由此得出并不是在内置模块的值直接调用
而是从导入模块的时候相关的值已经被内存空间所导入,所以即使删除了源文件也没有事文件已经被内存所调用
sys地毯式
import sys
print(sys.path)
这个把内裤都给你找到
- sys.path中虽然有很多路径 但是只需要重点关注第一个
第一个其实就是执行文件所在的路径(所在的盘)- one
主动添加sys.path路径(类似于添加环境变量)
import sys
sys.path.append(['D:\\pythonProject')
time.sleep(8)
improt B
print(B.name)
2. two 利用from....import...直接定位
from Project import B
print(B.name)
from Project.A import B
print(B.name)
绝对导入与相对导入
-
在导入模块的时候一切查找模块的句式都是在以执行文件为标准无论导入的句式在执行文件的还是被导入文件中
- 绝对导入:永远按照执行文件所在的路径一层层往下查找
- 相对导入:相对导入可直接查询相关的档案模块即可 ;from.import a 相对路径只能在被导入的文件中执行 比如存在一个文件存储模块A
from.import A print(A.name)
包
- 本质
- 函数内部含=含有__int__.py的文件夹
- 实际情况或者运用情况
- 多个模块组合在一个文件夹里
在pycharm中甚至直接提供了创建包的选项
本质就是文件夹里面有一个__init__.py文件
在导入模块的时候文件其实就是在和包在__init__.py相对导入的时候可以通过文件包的所有模块调用这种模式直接调用前提是要提前设置好模块文件名
绝对路径导入的时候不需要考虑函数包,直接当成普通文件调用即可
编程思想演变
1.小白阶段
此阶段写代码就是在一个文件内不停地堆叠代码的行数(面条版本)
2.函数阶段
此阶段写代码我们学会了将一些特定功能的代码封装到函数中供后续反复调用
3.模块阶段
此阶段不单单是将功能代码封装成函数,并且将相似的代码功能拆分到不同的py文件中便于后续的管理
软件开发目录规范(重要)
-
含义:我们实际工作中编写的程序软件都是有很多文件夹和文件组成的,这些文件夹和文件其实都有各自存在的意义和主要功能
-
比如:
1.bin文件夹
存放程序的启动文件 start.py
2.conf文件夹
存放程序的配置文件 settings.py
3.core文件夹
存放程序的核心业务 src.py
就是最为重要的代码 能够实现具体需求
4.lib文件夹
存放程序公共的功能 common.py
5.db文件夹
存放程序的数据 userinfo.txt
6.log文件夹
存放程序的日志记录 log.log
7.readme文本文件
存放程序的说明、广告等额外的信息
8.requirements.txt文本文件
存放程序需要使用的第三方模块及对应的版本
放张图感受下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本