今日内容总结
索引取值与迭代取值的区别
1.索引取值
可以将索引取得值反复使用
不支持无序类型的数据类型
2.迭代取值
只能从前开始无法往后
支持所有数据类型
模块简介
#1.模块的本质
内部含有一定功能的py文件
#2.python的发展史
刚开始不被其他语言的程序员 看不起被称为>>>掉包侠(贬义)
慢慢被人接受 而且使用场景更加广泛>>>掉包侠(褒义)
#3.模块的表达形式
1.py文件(也可以成为模块文件)
2.含有多个py文件的文件夹(一般按功能换分)
3.已被编译为共享库或Dll的c或c++扩展
4.使用c编写并链接到python解释器的内置模板
模块的分类
#1.自定义模板
我们自己编写的模板
#2.内置模板
python解释器提供的模板
#3.第三方模板
python厉害之处 别人写的模板(python背后的bigboos)
导入模块的两种语句
'''
1.在使用时一定要区分开执行文件和被导入文件
2.开发项目一般使用纯英文
3.导入模块文件不需要后缀名
'''
1.import句式
以 import a为例子
'''
1.先产生执行文件的名称空间
2.执行被导入文件的代码将产生的名字放到被导入文件的名称空间中
3.在执行的文件的名称空间中产生一个模块的名字
4.在执行文件中使用该模块名+点的方式使用模块名称空间中所有的名字
'''
2.from ... import...句式
以 from a import name ,func1为例研究底层原理
'''
1.先产生执行文件的名称空间
2.执行被导入文件的代码将产生的名字放入被导入文件的名称空间
3.在执行文件的名称空间中产生对应的名字绑定模块名称空间对应的名字
4.在执行文件中直接使用名字就可以访问名称空间对应的名字
'''
导入模块的补充说明
#1.import和 from...import...都有优缺点
import句式
由于使用模块名称空间中的名字都需要使用模块加点才可以使用
不易被执行文件中的名字替换
也不会弄混淆
from...import...句式
不需要模块加点就可使用
容易和执行文件中的名字冲突
#2.重复导入模块
解释器每次的py文件只需要导入一次即可 多导也没事
#3.起别名
import sjiadisasbhjdsj
可以转换成
import sjiadisasbhjdsj as a
后续使用a加点就可以使用
from wjejhwkjhkj import sjhajhjs as aa
from a import shshskdh as a,shhdjajbeb as b
#4.涉及多个模板导入
1. import a
import b
2. import a , b
除非a和b两个模板的功能相似 不然不推荐使用 2
循环导入问题
#1.循环导入
当两个文件之间循环导用彼此 且互相使用对方的名称空间的名字 极容易报错
#2.如何解决循环导入的问题
1.确保名字在被使用前已经准备好
2.我们在编写代码的过程中尽量避免
判断文件类型
#当在文件中打印__name__
代表的含义是现在的文件是执行文件 __name__ 输出的结果是__main__
如果是导入文件打印的结果是 模块名
# 一个脚本
if __name__ =='__main__':
print('我是执行文件')
用于区分py文件python代码的执行
使用场景
1.模块开发阶段
2.项目启动文件
'''
from a impurt * *可将a模块空间的所有的名字都拿来调用
__all__ = ['名字1','名字2'] 针对*符号 让其只能调用列表中的名字 局限大 不推荐使用
'''
模块的查找顺序
#内存 >>> 内置 >>> 执行文件所在的sys.path(系统环境变量)
在命名自定义模块时要避免名字与内置函数冲突
1.要以执行文件为准
2.通过sys.path可以查看文件的路径输出的结果是一个列表 可以将我们需要的调用的模板加入到该路径(列表)
import sys
sys.path.append(r'D:\\pythonProject\\aaa\\bbb')
import a
print(a.name)
绝对导入与相对导入
'''
强调:一定要分清楚执行文件与导入文件 模块的导入全部以执行文件为准
'''
#绝对导入
for aaa.bbb.ccc import name # 可以确实到变量名
注意:在PyCharm中会自动加上更目录相当于从上到下 但在cmd中会直接报错
#相对导入
.在路径中表示当前目录
..在路径的上一层目录
..\..表示上上一层的目录
不在依据执行文件所在的sys.path 而是以模块自身路径为准
for . import b
相对导入只能用于模块文件中 不能在执行文件中使用
'''
相对导入使用较少 一般是使用绝对导入
'''
包
装有多个py文件的集合>>>文件夹
标签:__,文件,17,名字,导入,模块,import
From: https://www.cnblogs.com/xiaochenxiangchangpang/p/16803247.html