python学习笔记(10)-模块

模块

模块的概念

模块是Pthon程序架构的一个核心概念

  • 每一个以拓展名.py结尾的Python源代码文件都是一个模块
  • 模块名同样也是一个标识符,需要符合标识符的命名规则
  • 在模块中定义的全局变量、函数、类都是提供给外界直接使用的工具
  • 模块就好比是工具包,要想使用这个工具包中的工具,就需要先导入这个模块

模块的两种导入方式

1)import导入

import 模块名1,模块名2

在导入模块时,每个导入应该独占一行

import 模块名1
import 模块名2
  • 导入之后,通过模块名使用模块提供的工具–全局变量、函数、类,当模块名字比较复杂的时候一般使用模块别名代替,可以简化程序编写。
import 模块名1 as 模块别名

2)from…import

  • 如果希望从某一个模块中,导入部分的工具,就可以使用from…import的发过誓
  • import 模块名是一次性把模块中所有工具全部导入,并且通过模块名/别名访问
#从模块导入某一个工具
from 模块名1 import 工具名
  • 导入之后,主要有两个特点:1.不需要通过模块名.2.可以直接使用模块提供的工具

注意:
如果两个模块,存在同名的函数,那么后导入模块的函数,会覆盖掉先导入模块的函数
一旦发生冲突可以采用as给其中的一个工具一个别名

  • 导入所有的工具
from 模块1 import * #不需要 模块名.

模块的搜索顺序

python的解释器在导入模块时,会:

  1. 搜索 当前目录 指定模块名的文件,如果有就直接导入
  2. 如果没有,再搜索 系统目录

使用__file__可以查看模块的路径

import random
print(random.__file__)

每一个文件都应该是可以被导入的

  1. 一个独立的Python文件就是一个模块
  2. 在导入文件时,文件中所有没有任何缩进的代码都会被执行一遍,直接执行的代码不是向外界提供的工具

####实际开发场景

  1. 在实际开发中,每一个模块都是独立开发的,大多有专人负责
  2. 开发人员通常会在模块下方增加一些测试代码
  3. 仅在模块内使用,而被导入到其他文件中不需要执行

__name__

测试模块的代码只在测试情况下被运行,而在被导入时不会被执行。

  • __name__是Python的一个内置属性,记录着一个字符串
  • 如果是被其他文件导入的,__name__就是模块名
  • 如果是当前执行的程序__name____main__,所以很多程序里会有代码if __name__ == "__main__":

包(package)

  • 包 是一个包含多个模块的特殊目录
  • 目录下有一个特殊的文件 __init__.py
  • 包名的命名方式和变量名一致,小写字母+_

好处:使用import 包名可以导入所有模块
其中__init__.py中需要指定对外界提供的模块列表

#从当前目录导入模块列表
from . import send_message
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kelinnn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值