一.模块

  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 模块的更多相关文章

  1. Day15模块(导入,使用)

    Day15模块 什么是模块: 一系列功能的集合体 一个py文件就是一个模块 aaa.py就是aaa模块 模块四种形式: 内置的模块 py文件 第三方的 包 模块三种来源:内置的,第三方,自定义 为什么 ...

  2. python学习day15 模块(重点)

    模块(重点) python2,与py3的区别 py2:range() 在内存中立即把所有的值都创建,xrange() 不会再内存中立即创建,而是在循环时边环边创建. py3:range() 不会再内存 ...

  3. day15(模块引用笔记)

    import spam文件名是spam.py,模块名则是spam# 首次导入模块发生?件事# 1. 会产生一个模块的名称空间# 2. 执行文件spam.py,将执行过程中产生的名字都放到模块的名称空间 ...

  4. day15模块内容

    1.生成器表达式 先说三元表达式如下 res = [i for i in range(10) if 1 > 5] 这样res就是一个列表6,7,8,9] 只要在这个基础上稍加调整,如下 方括号改 ...

  5. 22期老男孩Ptython全栈架构师视频教程

    老男孩Ptython全栈架构师视频教程 Python最新整理完整版22期视频教程 超60G课程容量<ignore_js_op> <ignore_js_op> <ignor ...

  6. python27期day15:自定义模块、模块导入、模块的路径、模块的查找顺序、time、datetime、random、os、sys、作业题

    1.模块的介绍: py文件就是一个模块 2.模块的分类:内置模块:python标准库 200 第三方模块 自定义模块 3.为什么学习模块? 开发效率高,内置函数和模块 减少重复代码,分文件管理,有助于 ...

  7. day15 内置函数和模块

    day15 内置函数和模块 1.三元表达式 代码如下: x = 1 y = 2 res = 'ok' if x > y else 'no' print(res) 输出结果:no 2.内置函数:重 ...

  8. DAY15、模块

    一.函数的补充 1.函数回调: 提前在另一个函数中写出函数的调用,再根据实际的需求去考虑函数体的实现 def download(fn=None): print('开始下载') my_sleep(1) ...

  9. Day15 Python基础之logging模块(十三)

    参考源:http://www.cnblogs.com/yuanchenqi/articles/5732581.html logging模块 (****重点***) 一 (简单应用) import lo ...

随机推荐

  1. 实战一个职业技术学校。 by:hack某某

    这是我们的目标,某一技术学院,这是一个注入点 上sqlmap 跑出了管理账号密码 扫后台 没有找到,注入就相当鸡肋了 换换其他思路 dba权限,想到了直接写入 找找路径之类的 找到了,运气相当的好 直 ...

  2. makefile编写规则

    cc = g++ -std=c++11 prom = calc deps = FtTest.h obj = FtTest.o newft.o LIBS = -lgtest_c11 $(prom): $ ...

  3. Windebug调试

    .loadby SOS clr .Symfix .reload !threads !printexception [address]

  4. python练习题-day12

    用列表推导式做下列小题 (1) 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母 lst1=["admhdja","aksaudj","fh&q ...

  5. 一个ping大包不通问题的解决过程

    1.问题描述 存在问题: 深圳的采集机MQ程序无法与应用服务器进行通讯,表现为:获取小数据时正常,获取大数据时超时 场景图如下 2.数据下载测试 使用SCP工具和FTP工具进行数据下载测试,主要是想排 ...

  6. 2018-2019-1 20189221 《Linux内核原理与分析》第九周作业

    2018-2019-1 20189221 <Linux内核原理与分析>第九周作业 实验八 理理解进程调度时机跟踪分析进程调度与进程切换的过程 进程调度 进度调度时机: 1.中断处理过程(包 ...

  7. Ch04 映射和元组 - 练习

    1. 设置一个映射,其中包含你想要的一些装备,以及它们的价格.然后构建另一个映射,采用同一组键,但在价格上打9折. import scala.collection.JavaConversions.as ...

  8. VMWare安装CentOS 6.5图解

    1.本安装示例所使用的虚拟机:vmware workstation 12 2.从VMWare创建虚拟机开始,打开VMWare. 操作系统:CentOS 6.5 64位 IP地址:192.168.1.2 ...

  9. ubuntu12下subversion 1.6升级为1.8版本

    应用场景是.android源码体积太大.我从服务器上svn co过来,速度很慢.服务器是ubuntu14版本,我工作的机器是ubuntu12版本,14上面svn版本是1.8.8,12上svn的版本是1 ...

  10. Mybatis(二)总结

    1. 输入映射(就是映射文件中可以传入哪些参数类型) 1)基本类型 2)pojo类型 3)Vo类型2. 输出映射(返回的结果集可以有哪些类型) 1)基本类型 2)pojo类型 3)List类型3. 动 ...