首页 > 其他分享 >17

17

时间:2022-10-18 17:14:31浏览次数:44  
标签:__ 文件 17 名字 导入 模块 import

今日内容总结

索引取值与迭代取值的区别

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.我们在编写代码的过程中尽量避免

image

判断文件类型

#当在文件中打印__name__
代表的含义是现在的文件是执行文件 __name__ 输出的结果是__main__
如果是导入文件打印的结果是 模块名
# 一个脚本
if __name__ =='__main__':
    print('我是执行文件')
    
用于区分py文件python代码的执行
使用场景
    1.模块开发阶段
    2.项目启动文件
'''
from a impurt *   *可将a模块空间的所有的名字都拿来调用
__all__ = ['名字1','名字2']  针对*符号 让其只能调用列表中的名字 局限大 不推荐使用
'''

image

模块的查找顺序

#内存 >>> 内置 >>> 执行文件所在的sys.path(系统环境变量)
在命名自定义模块时要避免名字与内置函数冲突

1.要以执行文件为准
2.通过sys.path可以查看文件的路径输出的结果是一个列表 可以将我们需要的调用的模板加入到该路径(列表)
	import sys
	sys.path.append(r'D:\\pythonProject\\aaa\\bbb')
	import a
	print(a.name)

image

绝对导入与相对导入

'''
强调:一定要分清楚执行文件与导入文件 模块的导入全部以执行文件为准
'''
#绝对导入
    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

相关文章

  • mybatis_17_根据properties元素的url属性指定的路径读取属性文件
    定义一个属性文件config.properties,文档结构示例:  文件内容示例:url=jdbc:postgresql://172.16.x.x:5432/database_name在mybatis-config2.xml的proeprties......
  • LeetCode 171. Excel Sheet Column Number
    ​​题目​​classSolution{public:inttitleToNumber(strings){intans=0;for(inti=0;i<s.length();i++){ans*=26;......
  • [答疑精选2015/11/17]如果现在是一个根本不存在的业务场景呢
    如果现在是一个根本不存在的业务场景呢李秀涛(891***324)22:09:07 老师:我有个疑惑,希望跟你交流下。在你的书的上册中做业务流程建模中,需要先构建一个现在的业务流程,再通过......
  • 2022.10.17-D 摩斯电码
    感谢lby奆奆的指导。思路:首先,\(1\)号的票肯定是越多越好,因此\(a_1,a_n\)一定都是投给\(1\)号。我们考虑二分\(1\)号能获得的席位数\(x\)。显然,对于所有\(\f......
  • 2022-10-17 上涨过程中的下跌区分,纳斯达克最近的2次下跌记录
     先看第一段下跌1.是日线的下跌一段,然后一个阳线的单K线反转。注意,这里虽然是单根K线很强,但是整体还处于下降段。所以之后的调整还是很重要的2.30分钟还是处于一个中......
  • 10.17
    T1线段树优化DP[COCI2015-2016#1]RELATIVNOST题目描述您是一位计数大师,有一天您的朋友Luka出了一道问题来刁难您。Luka是一位勤劳的画家,他的画很好,所以会有\(n\)......
  • 2022-10-17学习内容
    1.向下一个Activity发送数据1.1activity_act_send.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/and......
  • 10.17
    #include<stdio.h>intmain(){ unsignedlonglongn,i,m=1; scanf("%llu",&n); for(i=1;;i++) {if(n/10==0) {break; }else{ n=n/10; m++;} } printf("%llu",m......
  • 【LeetCode】1732. 找到最高海拔(C++)
    1732.找到最高海拔(C++)​​1题目描述​​​​2示例描述​​​​2.1示例1​​​​2.2示例2​​​​3解题提示​​​​4源码详解(C++)​​1题目描述有一个自行车手打算......
  • 2022NOIPA层联测10 10月17日
    一句话总结:T1不会,T2多\(\log\)而且写挂了,T3T4没看,56分离场。部分题解T1.异或(xor)推了一大堆没用的结论,没想到分治。题解:从高位到低位处理,对于每一层,如果当前这段......