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相关推荐

  1. python全栈开发 * 14 知识点汇总 * 180530

    14 生成器表达式 内置函数# 一.迭代器 (补充)# 1.如何判断迭代对象,迭代器# (1).dir(obj)检测对象有没有iter方法,然后it=obj.__iter__() 获取迭代器 , it ...

  2. python全栈开发 * 32知识点汇总 * 180717

    32 网络编程 (一)一.架构 定义:程序员开发的一种模式. 分类: C/S 架构 C/S即:Client与Server , 客户端/ 服务器模式 . 缺点 : 冗余 B/S 架构 Browser与S ...

  3. python全栈开发 * 24 知识点汇总 * 180705

    24 模块-------序列化一.什么是模块 模块:py文件就是一个模块.二.模块的分类:(1)内置模块 (登录模块,时间模块,sys模块,os模块)(2)扩展模块 (itchat 微信有关,爬虫,b ...

  4. python全栈开发 * 08知识点汇总 * 180608

    08知识点梳理 文件操作一 .文件操作 r (只读)1.r (读) rb(字节)f=open("果蔬大杂烩",mode="r",encoding="U ...

  5. python全栈开发 * 30知识点汇总 * 180713

    30 re模块2一.正则表达式在线测试 在线测试工具 http://tool.chinaz.com/regex/(一).*?的用法: . 是任意字符 * 是取 0 至 无限长度 ? 是非贪婪模式.合在 ...

  6. python全栈开发 * 07知识点汇总 * 180607

    07  set集合,深浅拷⻉以及部分知识点补充 一.while,for 循环知识点补充 二.int, str的相关操作 1.列表变字符串 # lst=["红","橙&qu ...

  7. python全栈开发总结_python全栈开发 * 12 知识点汇总 * 180530

    ⼀. 通⽤装饰器的回顾 1.开闭原则: 对增加功能开放. 对修改代码封闭 2.装饰器的作⽤: 在不改变原有代码的基础上给⼀个函数增加功能 3.通⽤装饰器的写法: def wrapper(fn): de ...

  8. Python全栈开发-Mysql知识点总结(中)

    进阶8.分页查询♥♥♥ /* 应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求 语法: select 查询列表 from 表 [join type] join 表2 on 连接条件 wh ...

  9. Python全栈开发记录_第一篇(循环练习及杂碎的知识点)

    Python全栈开发记录只为记录全栈开发学习过程中一些难和重要的知识点,还有问题及课后题目,以供自己和他人共同查看.(该篇代码行数大约:300行) 知识点1:优先级:not>and 短路原则:a ...

最新文章

  1. PHP显示今天、今月、上月、今年的起点/终点时间戳
  2. 简单Linux C线程池
  3. java基础(四) java运算顺序的深入解析
  4. canvas js 绘图插件_[开盖即食]小程序图表插件eCharts实战
  5. SQL中OBJECT_ID,OBJECT_NAME,OBJECT_DEFINITION的用法
  6. easypoi导出word表格_拒绝加班,批量将word文档中的信息高效率提取出来存储到Excel中...
  7. JAVA程序设计----IO流基础(上)
  8. linux下的启停脚本
  9. 网络技巧:想要WiFi信号满格,路由器应该这样放!
  10. CUDA TOOlkit Programming Guide 2. Programming Model
  11. Node起一个web服务器
  12. php调用笛风接口,优雅的用PHP来实现解析抖音无水印视频!
  13. 如何利用抖加实现精准引流?3种玩法,愿你别再花冤枉钱了?(五)
  14. 戴戒指的含义(以后要结婚的必看)
  15. Cesium中的儒略日JulianDate
  16. 智能手表,能否成为苹果的二次革命?
  17. html之菜单栏设置
  18. python os.system保存返回值_python中os.system的返回值
  19. 【三维目标检测】VoxelNet(一):crop.py详解
  20. OpenBLAS API

热门文章

  1. Hierarchy-Viewer架构
  2. Android 编译系统分析(二)
  3. Android 自定义Adapter以实现自定义填充ListView的Item
  4. Unable to resolve dependency for xxx, Could not resolve project
  5. 使用ajax+php+mysql实现数据库定时刷新
  6. linux 配置SAN存储-IPSAN
  7. Fiddler的一系列学习瞎记2(没有章法的笔记)
  8. primer3批量设计引物
  9. Android MVP模式就是这么回事儿
  10. Win10 下使用 ionic 框架开发 android 应用之搭载开发环境