2021-01-04模块的初级使用及入门

什么是模块
模块就是一系列功能的集合体
模块大致分为四种类别:
1、一个py文件就是一个模块,文件名叫test.py,模块名叫test
2、一个包含__int__.py文件的文件夹称之为包,包也是模块
3、使用c编写并连接到python解释器的内置模块
4、已被编译为共享库或dll的c或c++扩展

模块有三种来源:
1、自带的模块
2、第三方模块:pip3 install requests
3、自定义的模块

为何要用模块
1、(自带的模块,第三方模块)拿来主义,提升开发效率
2、自定义模块为了解决代码冗余问题

如何用模块 模块都是用来被导入使用的,

import 首次导入模块发生的事情:
1、运行spam.py,会创建一个模块的名称空间,将spam.py运行过程中产生的名字都丢到模块的名称空间中
2、在当前名称空间中得到一个名字,该名字是指向模块的名称空间
ps:后续的导入直接引用首次导入的成功,不会重复执行spam.py、不会重复创建名称空间

3、导入规范:
通常情况下所有导入的语句都应该写在文件的开头,然后分为三部分:
第一部分:先导入自带模块
第二部分:导入第三方
第三部分:导入自定义的

import的其他语法:
一行导入多个模块:
import os,sys,re #一行导入多个模块
import spam as sm #起一个别名,用于模块名字过长切不好记

用起来麻烦,想引用必须加前缀,但不会造成名称空间冲突
from import:
1、运行spam.py,会创建一个模块的名称空间,将spam.py运行过程中产生的名字都丢到模块的名称空间中
2、在当前名称空间中得到一个名字money,该名字是指向模块的名称空间的那个money

from spam import money
用起来简单,不用前缀,但会造成名称空间中名字冲突

from spam import money,read1,read2 (导入多个名字)

from spam import * #将spam的名字全部拽出来,减少了代码量,加大了与原文件名称空间冲突的可能性(慎用)

循环导入问题: #ps(不要出现循环导入问题)
可能会出现名字不存在的问题,即变量名字还未来的及导入到名称空间中解决方式以下两种:
(1)将变量名放在导入语句前面 ( 不建议这么做)
(2)将循环导入语句丢入函数中,此时不执行代码,只检测语法

模块的搜索路径与优先级:
1、内存中已经导入好的
2、内置
3、sys.path 环境变量
sys.path的第一个文件夹是当前执行程序所在的的文件夹,

如果想直接导模块,将模块文件放在执行文件那层文件夹就行,如果不在,则将模块文件加入环境变量中即可如:
一:import sys
sys.path.append(r"sys.path绝对路径的前缀")
import 模块文件的相对路径
二:
import sys
import os
base_dir = os.path.dirname(os.path.dirname(file))
sys.path.append(base_dir)
from 模块文件夹目录名import 模块文件名
文件名.调用的方法

软件开发的目录规范:纯小写与下划线组成
bin 储存执行文件
lib 模块文件与第三方库
conf 配置文件存放的目录
db 数据存放的位置
log 日志存放目录
core 核心代码存放目录
readme 使用说明

猜你喜欢

转载自blog.csdn.net/givenchy_yzl/article/details/112193572