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解释器会按照下面的步骤进行搜索: 在当前所在目录 ...
随机推荐
- Linux root密码忘记了怎么办?
一.找回root密码: 1. 开机出现 Booting Red Hat Enterprise Linux Client (…) in 3 seconds … 按任意键进入menu菜单: 2. 选择当前 ...
- dubbo @Activate 注解使用和实现解析
Activate注解表示一个扩展是否被激活(使用),可以放在类定义和方法上, dubbo用它在spi扩展类定义上,表示这个扩展实现激活条件和时机. 先看下定义: @Documented @Retent ...
- Python-mysql 权限 pymysql 注入共计
1.mysql用户管理 *** 数据安全非常重要 不可能随便分配root账户 应该按照不同开发岗位分配不同的账户和权限 mysql中 将于用户相关的数据放在mysql库 user - > db ...
- Linux安装nodejs和npm
先安装,nvm,即是Node Version Manager(Node版本管理器) curl -o- https://raw.githubusercontent.com/creationix/nvm/ ...
- liunx contos 7.4 安装redis集群
前前后后安装了几次redis集群,基本上每次安装都会采坑,耗时伤神. 安装redis依赖gcc环境,安装前先检查liunx上面有没有安装GCC 命令:gcc -v 上传redis-4.0.1.tar. ...
- Confluence 6 使用 Apache 和 mod_proxy
Atlassian 应用允许用户使用反向代理,但是 Atlassian 并不会为这个功能的配置提供支持.因此,Atlassian 也不能保证能够为这些配置提供任何支持. 如果你在配置上有任何需求,请参 ...
- 为 Confluence 6 分发包设置一个邮件会话
最简单设置 Confluence 电子邮件发服务器的方否认就是通过 Confluence 的管理员控制台进行设置.请参考 Configuring a Server for Outgoing Mail ...
- Confluence 6 数据库表-空间(Spaces)
这个表格与空间的管理有关. spaces 有关空间使用的信息:key,空间的名称和数字 ID. https://www.cwiki.us/display/CONF6ZH/Confluence+Data ...
- 【python】多进程与mongo
参考:http://api.mongodb.com/python/current/faq.html#using-pymongo-with-multiprocessing 如果使用了多进程,则必须在子进 ...
- MySql在windows上的安装
知乎安装教程 csdn安装教程 一.官网下载 ZIP Archive 内的软件包,mysql-xxx-win64.zip. 二.新建 MySQL 文件夹,解压缩下载包,进入文件夹(mysql-8.0. ...