python全栈开发 * 31知识点汇总 * 180716
31 模块和包一.模块(一)模块的种类:内置模块,自定义模块,扩展模块第三方模块(二)自定义模块 1.模块的创建 : 新建一个py文件. 2.模块名 : 模块名需要符合变量的命名规范. 3.模块的导入 import: (注意:导入模块时,python报错提示不可靠;import空格 文件名 不带.py.) (1).导入过程做了什么事? 相当于执行了一个被导入的py文件 (2).会重复导入吗? 不会,所有被导入的模块都会存在sys.modules中,这个字典中的key是这个模块的名字,value是模块的内存地址 (3).导入后可以直接使用这个模块中的函数和变量, 模块名.函数或变量名 每一个模块的导入都会创建一个属于自己的命名空间. (4).导入模块时发生了什么? 创建一个属于这个模块的命名空间; 执行这个模块中的代码; 创建一个引用来调用这个模块命名空间中的名字; 将这个模块的的内存地址存储在sys.modules中. (5)为模块起别名. import 模块名 as m 以上操作为导入模块重命名,重命名后新的名字会存储在内存空间中,作为模块的引用,但原模块名不能在文件中使用. 使用情况有两种: a: 模块名较长时可以使用,节省代码,增强可读性. b: 两个模块提供的功能相同. 序列化json pickle 你提供序列化功能,帮助用户对***进行序列化 def dump(somthing,m = 'json'): if m == 'json': import json as m else: import pickle as m m.dumps(somthing) 数据库 oracle oracle_db mysql mysql_db if db_name=="mysql": import mysql_db as db elif db_name=="oracle": import oracle_bd as db db.connect() db.exec() (6)导入多个模块 导入的模块都写在文件的最开始; 导入顺序:先导入内置模块,再导入扩展模块,最后导入自定义模块; 格式:分开写,导入的各模块中间空一行; 另一种写法: 写一行:import os,sys,flash 重命名:import os as o,sys as s,flask as f 4.导入模块 from 模块名 import变量名(方法名) 没被导入的其它名字不能用了 (1)导入过程中发生什么事: 执行整个被导入的模块; (2) 创建一个命名空间 ,并把模块中的所有名字都存在命名空间中; (3)导入后, 使用模块中的名字不需要用 模块名.函数名或变量名 , 而是导入什么名字就能用什么名字 没有导入的名字不能用. (4)导入多个名字 from 模块名 import 变量名,变量名 ( 写一行) from 模块名 import 变量名 from 模块名 import 变量名 (分开写) (5)重命名 from 模块名 import 变量名 as s ,变量名 as m (6)* 和__all__ from 模块名 import * (* 导入全部变量名 一般不用) (7)情况分析 如果模块中有20个方法,只用一个,用from 模块名import 方法名; 如果模块中有20个方法,用十个,用import方法; import* 不定义__all__,*可以导入模块中的所有名字,,如果有__all__=[ 变量名,变量名] *只可以导入出现在__all__列表中的变量名. (三)模块的循环作用 (互相引用)==>直接报错 1.依赖倒置原则: 高层不应该依赖低层模块. 2.a引用b,b是a的高层. (四)模块的加载与修改 1.模块一旦引入并加载完,再改导入模块中的内容,当前文件中不会改变还是用原值. 2.如果想改,import importlib (内置模块) import importlib importlib.reload(模块名) 使修改生效(五)把模块当做脚本来执行 (六)模块的搜索路径二.包(一)导入模块(二)导入包(三)绝对导入(四)相对导入(五)__all__和*
转载于:https://www.cnblogs.com/J-7-H-2-F-7/p/9326486.html
python全栈开发 * 31知识点汇总 * 180716相关推荐
- python全栈开发 * 14 知识点汇总 * 180530
14 生成器表达式 内置函数# 一.迭代器 (补充)# 1.如何判断迭代对象,迭代器# (1).dir(obj)检测对象有没有iter方法,然后it=obj.__iter__() 获取迭代器 , it ...
- python全栈开发 * 32知识点汇总 * 180717
32 网络编程 (一)一.架构 定义:程序员开发的一种模式. 分类: C/S 架构 C/S即:Client与Server , 客户端/ 服务器模式 . 缺点 : 冗余 B/S 架构 Browser与S ...
- python全栈开发 * 24 知识点汇总 * 180705
24 模块-------序列化一.什么是模块 模块:py文件就是一个模块.二.模块的分类:(1)内置模块 (登录模块,时间模块,sys模块,os模块)(2)扩展模块 (itchat 微信有关,爬虫,b ...
- python全栈开发 * 08知识点汇总 * 180608
08知识点梳理 文件操作一 .文件操作 r (只读)1.r (读) rb(字节)f=open("果蔬大杂烩",mode="r",encoding="U ...
- python全栈开发 * 30知识点汇总 * 180713
30 re模块2一.正则表达式在线测试 在线测试工具 http://tool.chinaz.com/regex/(一).*?的用法: . 是任意字符 * 是取 0 至 无限长度 ? 是非贪婪模式.合在 ...
- python全栈开发 * 07知识点汇总 * 180607
07 set集合,深浅拷⻉以及部分知识点补充 一.while,for 循环知识点补充 二.int, str的相关操作 1.列表变字符串 # lst=["红","橙&qu ...
- python全栈开发总结_python全栈开发 * 12 知识点汇总 * 180530
⼀. 通⽤装饰器的回顾 1.开闭原则: 对增加功能开放. 对修改代码封闭 2.装饰器的作⽤: 在不改变原有代码的基础上给⼀个函数增加功能 3.通⽤装饰器的写法: def wrapper(fn): de ...
- Python全栈开发-Mysql知识点总结(中)
进阶8.分页查询♥♥♥ /* 应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求 语法: select 查询列表 from 表 [join type] join 表2 on 连接条件 wh ...
- Python全栈开发记录_第一篇(循环练习及杂碎的知识点)
Python全栈开发记录只为记录全栈开发学习过程中一些难和重要的知识点,还有问题及课后题目,以供自己和他人共同查看.(该篇代码行数大约:300行) 知识点1:优先级:not>and 短路原则:a ...
最新文章
- PHP显示今天、今月、上月、今年的起点/终点时间戳
- 简单Linux C线程池
- java基础(四) java运算顺序的深入解析
- canvas js 绘图插件_[开盖即食]小程序图表插件eCharts实战
- SQL中OBJECT_ID,OBJECT_NAME,OBJECT_DEFINITION的用法
- easypoi导出word表格_拒绝加班,批量将word文档中的信息高效率提取出来存储到Excel中...
- JAVA程序设计----IO流基础(上)
- linux下的启停脚本
- 网络技巧:想要WiFi信号满格,路由器应该这样放!
- CUDA TOOlkit Programming Guide 2. Programming Model
- Node起一个web服务器
- php调用笛风接口,优雅的用PHP来实现解析抖音无水印视频!
- 如何利用抖加实现精准引流?3种玩法,愿你别再花冤枉钱了?(五)
- 戴戒指的含义(以后要结婚的必看)
- Cesium中的儒略日JulianDate
- 智能手表,能否成为苹果的二次革命?
- html之菜单栏设置
- python os.system保存返回值_python中os.system的返回值
- 【三维目标检测】VoxelNet(一):crop.py详解
- OpenBLAS API
热门文章
- Hierarchy-Viewer架构
- Android 编译系统分析(二)
- Android 自定义Adapter以实现自定义填充ListView的Item
- Unable to resolve dependency for xxx, Could not resolve project
- 使用ajax+php+mysql实现数据库定时刷新
- linux 配置SAN存储-IPSAN
- Fiddler的一系列学习瞎记2(没有章法的笔记)
- primer3批量设计引物
- Android MVP模式就是这么回事儿
- Win10 下使用 ionic 框架开发 android 应用之搭载开发环境