Python学习(十一) —— 模块和包
一、模块
一个模块就是一个包含了python定义和声名的文件,文件名就是模块名加上.py后缀。
import加载的模块分为四个通用类别:
1.使用python编写的代码(.py文件)
2.已被编译为共享库或DLL的C或C++扩展
3.包好一组模块的包
4.使用C编写并链接到python解释器的内置模块
为何要使用模块:将一些复杂的需要重复使用的功能进行归类,分别放到同一个py文件中,需要调用的时候直接导入,提高代码的复用性。
二、导入模块
先看内存里有没有这个模块,有则不导入,没有则导入,因此重复导入模块只会导入一次。
每个模块都是一个独立的名称空间,定义在这个模块中的函数,把这个模块的名称空间当做全局名称空间,因此在自己编写模块时,不用但是会发生变量冲突
import 模块名
import 模块名 as 变量名:给模块重命名,重命名之后之前的名字就失效了,新名字可以直接使用
适用于:模块名太长;模块名和文件的变量重名
导入多个模块:import 模块名1,模块名2,模块名3...
导入模块的顺序:先导入内置的模块,再导入扩展模块,最后导入自定义的模块
from 模块名 import 方法
from 模块名 import *,默认把模块里所有的变量导入,如果定义了__all__,则只会导入__all__里面的变量,__all__是一个列表,里面存放变量名的字符串形式
from 模块名 import 方法1 as d,方法2 as p
from 模块名 import (方法1,方法2,方法3)
from import的方法会直接将导入的内容放在全局,如果在自己的文件有重名,那么会发生覆盖
pi = 3.14
from math import pi
print(pi) #3.141592653589793 from math import pi
pi = 3.14
print(pi) #3.14
一旦导入了模块,如果修改模块的内容,修改的内容不会生效,如果想要使修改的内容生效,则要重启程序,或者导入importlib模块并使用reload()方法
import time,importlib
import custom #导入自定义模块
custom.drive() #调用自定义模块的drive方法
time.sleep(10) #手动修改drive方法
importlib.reload() #调用importlib的reload方法
custom.drive() #重新调用drive方法
把模块当作脚本执行
在需要被导入的模块中添加一行代码:if __name__ == '__main__':,当导入这个模块的时候,这行代码后面的内容就不会执行,因为导入模块后,被导入模块的__name__发生了变化,变成了模块名
name = 'abc'
def func():
print('Hello World!') if __name__ == '__main__': #当这个文件被当作模块导入时,if里面的语句不会被执行,可以放测试的代码
print(name)
func()
Python学习(十一) —— 模块和包的更多相关文章
- python学习笔记-模块和包
模块导入方法 1.import 语句 import module1[,module2[,...moduleN]] 当我们使用import语句的时候,Python解释器是怎么找到对应对文件对呢?答案是解 ...
- 4月8日 python学习总结 模块与包
一.包 #官网解释 Packages are a way of structuring Python's module namespace by using "dotted module n ...
- Python 2.7 学习笔记 模块和包
我们来考虑下如下几种场景: 1.编写一个python程序,如果程序比较简单,则可以把代码放到一个python文件中.但如果程序功能比较多,可能需要多个python文件来组织源代码.而这些文件之间的代码 ...
- 二十五. Python基础(25)--模块和包
二十五. Python基础(25)--模块和包 ● 知识框架 ● 模块的属性__name__ # my_module.py def fun1(): print("Hello& ...
- Python学习--Selenium模块
1. Python学习--Selenium模块介绍(1) 2.Python学习--Selenium模块学习(2) 其他: 1. Python学习--打码平台
- Python学习--Selenium模块学习(2)
Selenium的基本操作 获取浏览器驱动寻找方式 1. 通过手动指定浏览器驱动路径2. 通过 `$PATH`环境变量找寻浏览器驱动 可参考Python学习--Selenium模块简单介绍(1) 控制 ...
- Python学习(22):模块
转自 http://www.cnblogs.com/BeginMan/p/3183656.html 一.模块基础 1.模块 自我包含,且有组织的代码片段就是模块 模块是Pyhon最高级别的程序组织单元 ...
- Python学习---重点模块的学习【all】
time [时间模块] import time # print(help(time)) # time模块的帮助 print(time.time()) # 时间戳 print(time.cloc ...
- python学习之模块&包的引用
名词解释: 模块:一个程序文件 包:相当于一个类库,打包发布后相当于c#中的dll, 包中可包括若干个模块,比如main.py就是一个模块,对于test2文件下的所有模块组成一个包 对于一个包而言,注 ...
- 【循序渐进学Python】10.模块和包
1.导入模块 任何Python程序都可以作为模块导入,只要Python解释器能找到我们定义的模块所在位置即可,一般来讲,在一个模块被导入时,Python解释器会按照下面的步骤进行搜索: 在当前所在目录 ...
随机推荐
- web@css引入方式,基本选择器,3大特性,高效运行
4.高效的css 所谓高效就是让浏览器查找更少的元素标签来确定匹配的style元素. 1.不要再ID选择器前使用标签名 解释:ID选择是唯一的,加上标签名相当于画蛇添足了,没必 ...
- ICO和IPO
ICO 和 IPOIPO:在经过种子轮,天使轮,x轮之后已经非常成熟的状态下进行的投资,基本上是盈利的,上市的是股份,现金流ICO:早期有一个idea,然后又很多的小散户进行的几千万-几亿的投资,风险 ...
- PYTHON- 操作系统和python程序
操作系统基础 应用程序的启动:(重点!!!) python解释器安装,多版本共存 执行python程序的两种方式 运行一个python程序经历的三个阶段(重要) python 的内存管理 ====== ...
- for循环中按条件删除数据元素
var managerList = [ { id: 0, title: '小小消息的标题1', small: '小小消息内容', newsFlag:true, }, { id: 1, title: ' ...
- iOS ReplayKit 录屏 框架的使用
在需要使用录屏的 地方 引入 头文件 #import <ReplayKit/ReplayKit.h> 添加代理 RPPreviewViewControllerDelegate 因为 iOS ...
- Confluence 6 推荐的更新通知设置和禁用
你可以设置默认的发送选项(发送 / 不发送)和默认的发送时间(每天或每周). 如何配置推荐更新电子邮件通知: 在屏幕的右上角单击 控制台按钮 ,然后选择 General Configuration 链 ...
- Confluence 6 跟踪你安装中的自定义修改
在 Confluence 中的系统信息(System Information)部分,有一个 修改(Modification)的选项.在这个选项中列出了自你 Confluence 安装以来,你 Conf ...
- 【Windows】添加定时任务不执行
[问题]windows定时任务不执行.在“所有程序->附件->系统工具->任务计划程序”中添加了定时调用“D:\sys_task\bugmanager\run.bat”脚本的任务计划 ...
- 高性能JavaScript读后感
这本书让lz对js性能优化有了更深刻的理解,现在因为我们通常用第三方构建工具webpack.gulp等诸如此类,之前总是听说什么dom操作影响性能呢,对这个概念总是有点模糊,但看完这本书之后后,相对而 ...
- Linux 系统根目录下各个文件夹的作用
原文: https://blog.csdn.net/qq_26941173/article/details/78376760 /bin 系统由很多放置可执行文件的目录,但是bin目录比较特殊.因为bi ...