Python第15天
2021-01-23 18:12
标签:第三方 情况 标准 元素 常用模块 成功 分类 tor 文件中 1 自定义模块 2常用模块time datetime random 模块:就是文件,存放一堆常用的函数,一个函数就是一个功能,把一些常用的函数放在一个py文件中,这个文件就称之为模块 模块,就是一些常用功能的集合体 封装语句的最小单位是模块 本质就是.py 文件 自定义模块:模块不易过大 实际上就是定义py文件 其中可以包含变量定义 可执行语句 for循环 函数定义等等 他们统称模块的成员 模块的运行方式: 1 脚本方式:直接用解释器执行 或者pycharm中右键运行 2模块方式:被其他的模块导入,为导入它的模块提供资源 (函数定义 类定义 变量等) —name_属性的使用: 在脚本方式运行时,__name__是固定的字符串__main__ 在以模块方式被导入时,__name__就是本模块的名字 系统在导入模块的路径 内存中:如果之前成功导入过某个模块,直接使用已经存在的模块 内置路径中:安装路径下:lib-》site-package sys .path:是一个路径的列表 如果三个都找不到,就报错 动态修改sys.path OS模块 os.path.dirname() 获取某个路径的父路径。通常用语获取当前模块的相对路径 为什么要用模块 1 从文件级别组织程序,更方便管理。随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理,这时我们不仅仅可以把这些文件当脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用 2 拿来主义,提升开发效率,同样的原理,我们也可以下载别人写好的模块然后导入到自己的项目中使用。这种拿来主义,可以极大地提升我们的开发效率,避免重复造轮子 常说的脚本:如果退出Python解释器然后重新进入,那么之前定义的函数或变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时的test.py被称为脚本script 所以 脚本就是一个Python文件,比如之前写的购物车,模拟博客园登录系统等等 模块的分类 1 内置模块 标准库,此类模块就是Python解释器给你提供的,比如time模块 os模块。标准库的模块非常多, 2第三方模块 第三方库 一些Python大神写的非常好用的模块,必须通过pip install指令安装的模块,比如BeatufulSoup Django等 3 自定义模块 自己在项目中定义的模块 定义一个模块 其实很简单就是写一个文件,里面写一些代码(变量,函数)即可 Python第15天 标签:第三方 情况 标准 元素 常用模块 成功 分类 tor 文件中 原文地址:https://www.cnblogs.com/daoda/p/12882965.htmlimport os
import sys
#sys.path.append(r‘C:\Users\Administrator\Desktop\.idea\python1\a‘)绝对路径找
sys.path.append(os.path.dirname(__file__)+‘/aa‘)def main():
pass
if __name__ == ‘__main__‘:
main()
导入模块的多种方式:
import xxx:导入一个模块的所有成员
import aaa,bbb 一次性导入多个模块的成员 不推荐这种写法 最好分开写
import os,sys
from xxx import a:从某个模块中导入指定的成员
from xxx import a,b,c 从某个模块中导入多个成员
from xxx import * 从模块中导入所有成员 import xxx和from xxx import * 的区别
import xxx 在使用其中成员时,必须使用模块名作为前缀 不会产生命名冲突
from xxx import * 在使用其中成员时,直接使用成员名 容易产生命名冲突 在后定义的成员生效(把前面的覆盖了)
)
怎么解决名称冲突的问题
改用import xxx 方式导入
自己避免使用同名使用别名解决冲突
使用别名:alias的缩写 as
axxx as xxx
导入的模块 导入的成员使用别名#使用别名避免命名冲突
from my_module import age as a 给成员起别名
age=1000
print(age)
print(a)#给模块起别名
import my_module as m 给模块起别名 简化书写
print(m.age)
m.f1()
from XXX import * 默认控制成员被导入
默认情况下,所有的成员都会被导入
__all__是一个列表 用于表示本模块可以被外界使用的成员。元素是成员名组成的字符串# 验证 ————all————
# from my_module import *
import my_module as m
print(m.age)
print(m.age2)
print(m.age3)import my_module as m#使用这种方式可以绕过————all————
print(m.age)
print(m.age2)
print(m.age3)
__all__只对from xxx import * 这种导入方式生效,其余的方式都不生效
相对导入
针对某个项目中的不同模块之间进行导入