DAY15 模块
一.模块
1.1 模块的定义:模块就是一系列功能的集合体
1.2 模块的四种存在方式:
1.使用python编写的.py文件(任一py文件都可以作为模块)
2.包:一堆py文件的集合体
3.使用C编写并链接到python解释器的内置模块
4.已经被编译为共享库或DLL的C或C++拓展
1.3 使用模块:在要使用模块的文件中通过 import 模块名 来导入模块
import module
1.编译执行模块所对应的py文件,形成对应的pyc文件
2.产生该模块自己的全局名称空间
3.在使用该模块的全局名称空间中产生一个名字(导入的模块名)
注:
1.每一个文件都会产生自己的全局名称空间,且相互不影响
2.多次导入,只会编译执行模块一次,将其加载到内存,之后的都是直接对名字的引用
1.4 使用模块的优点:
1.从文件级别组织代码,是同特性的功能能统一管理
2.可以使用系统或第三方模块(拿来主义),来提高开发效率
二.模块导入
通过as关键字可以给模块起别名:模块名一旦起别名原模块名就不能再使用
1.可以简化模块名字
import mmmmmmmmmmmm3 as my_m3
print(my_m3.num)
2.可以统一功能
cmd = input('数据库选择 1:mysql | 2:oracle:')
if cmd == '1':
import mysql as db
# mysql.excuse()
else:
import oracle as db
# oracle.excuse()
db.excuse()
三.from导入模块
3.1 from 模块名 import 名字1,名字2,...,名字n
# 可以指名道姓导入模块中所想要导入的名字
3.2 from 模块名 import *
# 导入的是模块中的__all__这个列表
# 1.系统默认该列表不会收录_开头的名字
# 2.可以自定义__all__列表来规定外界通过*可以导入的名字
注意:1.不建议直接导入*,因为可读性差,且极容易出现变量重名
from 模块名 import *
# 可以使用模块中的a
a = 20
# 模块中的a就被覆盖了,且在代码上还不能直接看出
3.3 from导入起别名
from 模块名 import 名字1 as 别名1,...,名字n as 别名n
四.自执行与模块区别
__name__:
1.在py文件作为模块被使用时,__name__为模块名
2.在py文件自执行时,__name__为字符串 '__main__'
print("共有逻辑")
if __name__ == '__main__':
# 所有自执行的逻辑
print("m6: 我是自执行的")
a = 10 # 产生的是全局的名字
else:
# 所有模块的逻辑
print("m6: 我被导入执行的")
print(a) # 会报错:走else就不可能走if,所以a压根没产生
DAY15 模块的更多相关文章
- Day15模块(导入,使用)
Day15模块 什么是模块: 一系列功能的集合体 一个py文件就是一个模块 aaa.py就是aaa模块 模块四种形式: 内置的模块 py文件 第三方的 包 模块三种来源:内置的,第三方,自定义 为什么 ...
- python学习day15 模块(重点)
模块(重点) python2,与py3的区别 py2:range() 在内存中立即把所有的值都创建,xrange() 不会再内存中立即创建,而是在循环时边环边创建. py3:range() 不会再内存 ...
- day15(模块引用笔记)
import spam文件名是spam.py,模块名则是spam# 首次导入模块发生?件事# 1. 会产生一个模块的名称空间# 2. 执行文件spam.py,将执行过程中产生的名字都放到模块的名称空间 ...
- day15模块内容
1.生成器表达式 先说三元表达式如下 res = [i for i in range(10) if 1 > 5] 这样res就是一个列表6,7,8,9] 只要在这个基础上稍加调整,如下 方括号改 ...
- 22期老男孩Ptython全栈架构师视频教程
老男孩Ptython全栈架构师视频教程 Python最新整理完整版22期视频教程 超60G课程容量<ignore_js_op> <ignore_js_op> <ignor ...
- python27期day15:自定义模块、模块导入、模块的路径、模块的查找顺序、time、datetime、random、os、sys、作业题
1.模块的介绍: py文件就是一个模块 2.模块的分类:内置模块:python标准库 200 第三方模块 自定义模块 3.为什么学习模块? 开发效率高,内置函数和模块 减少重复代码,分文件管理,有助于 ...
- day15 内置函数和模块
day15 内置函数和模块 1.三元表达式 代码如下: x = 1 y = 2 res = 'ok' if x > y else 'no' print(res) 输出结果:no 2.内置函数:重 ...
- DAY15、模块
一.函数的补充 1.函数回调: 提前在另一个函数中写出函数的调用,再根据实际的需求去考虑函数体的实现 def download(fn=None): print('开始下载') my_sleep(1) ...
- Day15 Python基础之logging模块(十三)
参考源:http://www.cnblogs.com/yuanchenqi/articles/5732581.html logging模块 (****重点***) 一 (简单应用) import lo ...
随机推荐
- Codeforces 1062 - A/B/C/D/E - (Undone)
链接:http://codeforces.com/contest/1062 A - Prank - [二分] 题意: 给出长度为 $n(1 \le n \le 100)$ 的数组 $a[1 \sim ...
- 项目实战02:nginx 反向代理负载均衡、动静分离和缓存的实现
目录 实验一:实现反向代理负载均衡且动静分离 1.环境准备: 2.下载编译安装tengine 3.设置代理服务器的配置文件 4.启动tengine服务 5.开启后端的web服务 6.测试 实验二:ng ...
- Web开发——HTML基础(HTML表格 <table>)
参考: 表格属性参考:http://www.w3school.com.cn/tags/tag_table.asp 目录: 1.举例 2.表格 2.1 表格属性 2.2 表格的表头 2.3 表格中的空单 ...
- LeetCode 520 Detect Capital 解题报告
题目要求 Given a word, you need to judge whether the usage of capitals in it is right or not. We define ...
- python摸爬滚打之day20--多继承,MRO和C3算法
1.新式类和经典类 在python2.2之前, 基类如果不写(), 则表示为经典类; 在python2.2之后, 经典类不复存在, 只存在新式类. 如果基类谁都不继承的话, 则默认继承object. ...
- Docker入门2------容器container常规操作
参考转自 https://www.cnblogs.com/jsonhc/p/7760144.html Docker的container 运行一个container的本身就是开启一个具有独立namesp ...
- Python 总结
python3.7下载地址 Python安装pip 1.首先检查linux有没有安装python-pip包,直接执行 yum install python-pip 2.没有python-pip包就执行 ...
- int bool 字符串 列表 字典 集合
1.int和bool 输出i的最大二进制位数inti = 1000 print(i.bit_length()) 2. str int bool list set dict tuple 相互转换 pr ...
- 2018年工作终总结&规划
收获满满的2018 收获总结: 1. 换了家有地区牌照的公司,薪酬涨了那么一点点,但是工作压力.强度下降不少,这样有更多时间来学习新知识. 2. 跟同事一起接了维护后台管理系统的私活,每个月多了一点点 ...
- 谷歌PM面试官告诉你,如何成功拿到理想offer
快来看看大咖Nick如何甄选人才~文章转自墨刀公众号. 本文作者: Nick Baum,目前在谷歌做PM 作为谷歌的产品经理和面试官,我已经面过几百个PM的候选人了吧.这些经历能让我分享一下在PM求职 ...