Python 模块

目录

 

一,模块的概念

二,模块导入的原理

三,模块的导入方式

四,模块搜索路径

五,pyc 临时文件

六,把模块当做脚本运行


一,模块的概念

1,模块的概念介绍

一个包含python代码的文件就是一个模块。

使用模块的作用:

1.现在程序开发文件比较大,都放在一个文件中维护不方便,拆分成多个文件方便维护 与管理

2.模块可以增加代码的重用率

2,创建模块

模块本身就是一个文件,所有py代码都可以在文件中直接书写。不过我们开发共用模块时,最好在模块中书写以下内容。

变量         模块中的属性值

函数         单独的功能

          相似功能组合

模块测试代码   临时使用,被导入时不会执行

注意:

  1. .模块名称遵循标识符。
  2. .模块只有第一次被导入的时候执行,多次导入不会执行。

二,模块导入的原理

1. 模块导入会将要导入的文件执行一遍

2. 导入模块的名称就是我们定义的脚本或包的名称

3. 我们导入模块的过程总结就是:在指定的范围内搜索指定名称的python脚本或者包,将其运行,   获取其中的方法

三,模块的导入方式

1、import 模块名

直接导入模块

import time

print(time.timezone) # 模块名 变量名
print(time.asctime()) # 模块名 函数名

2,import  模块 as 别名

如果模块的名称太长,我们可以给这个模块起一个别名

import model01 as m

m.say_hello()  # 使用别名调用函数或者变量。
print(m.name)

3,一行导入多个模块(不推荐)

import model01, model02

model01.say_hello()
model02.test()

推荐一个 import 导入一个模块

4,from...import...局部导入方式

当使用模块中的部分功能的时候,就可以使用局部导入方式。

作用:直接导入模块中的某个函数或者某个类或者变量

from 模块名称 import 变量名(函数名或者变量名)
 导入test 函数,注意只能使用test函数不能使用其他的内容
from model02 import test

# 调用函数
test()

注意:如果当前文件中的变量或者函数名称和模块中的名称重复,会使用就近原则。

from model02 import test


def test():
    print('demo07-test')


test()  # 调用自己的,不会调用 model02中的

5,from ...import...as 别名

当导入的模块和当前模块中的名称相同的时候可以起别名来进行区分。


from model02 import test, num
test()  # model02 test
print(num)  # 10

起一个别名 t
from model02 import test as t

t()  # 通过别名 调用函数
model02 test

6,支持多行导入

# from ...import 功能1,功能2,....
from one_model import test1,test2

test1()
test2()

7,from 模块 import *

所有不是以下划线(_)开头的名字都导入到当前位置,大部分情况下我们的python程序不应该使用这种导入方式,

因为*你不知道你导入什么名字,很有可能会覆盖你之前已经定义的名字,而且可读性极其的差。

作用:直接导入模块中的所有方法和类以及变量

num = 20
from model02 import *

test()
# print(_age)  # 不能调用 模块中的_变量名
print(num)

__all__属性:__all__[变量1,变量2...] 设置导入模块的功能

from model02 import *

test()
print(num)
print(_age)
print(name) # 因为name没有在 __all__属性中,因此不能被使用。

四,模块搜索路径

当你导入一个模块,Python解析器对模块位置的搜索顺序是:

1、当前目录

2、如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。

由sys模块的sys.path方法来规定

因为sys.path返回的数据类型是列表

1、列表可以修改、我们导入的范围也可以通过修改sys.path这个列表获得暂时的修改。例如通过 sys.path.append()添加目录,导入额外目录的模块。

2、列表是有序的,当搜索的过程当中,在第一个路径下搜索到了,就停止搜索。而且sys.path第一个路 径是脚本的当前路径,所以禁止大家讲自己的脚本命名成模块的名称。

因此需要注意的是:自己模块命名的时候不能和系统的模块名称相同。

五,pyc 临时文件

为了提高加载模块的速度,python解释器会在__pycache__目录中下缓存每个模块编译后的版本,之后,再次被导入时,实际上导入的是这个.pyc的临时文件。

六,把模块当做脚本运行

我们可以通过模块的全局变量__name__来查看模块名:
当做脚本运行:
__name__ 的值 等于'__main__'

当做模块导入:
__name__的值等于模块名

作用:用来控制.py文件在不同的应用场景下执行不同的逻辑
if __name__ == '__main__':

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值