一、模块

1.模块

  1)定义

    一系列功能的集合体,在Python中py文件就是一个模块

  2)模块的类别

    a.使用Python编写的py文件

    b.已经被编译成共享库或者DLL的C 或者 C++ 扩展

    c.把一系列模块组织在一起的文件夹(注:文件夹下有一个__init__.py文件,该文件成称之为包)

    d.使用 C 编写并链接到Python解释器的内置模块

  3)为什么要实用模块

    a.重用功能

    b.拿来主义,提高开发效率

2.模块的导入方法

    1)方法一:

      import  模块名

      调用模块内功能:  模块名.模块名名称空间中的名字

      一次导入之后,直接引用第一次导入的结果,不会重复执行文件模块中的功能

      导入时执行三件事:

        a.创建文件名称空间

        b.执行模块对应文件,把名字放在创建的名称空间中

        c.在当前执行文件中拿到一个模块名,该模块指向建立的名称空间

# 导入和调用模块内的功能
import time
res = time.sleep(5) # 导入模块后起别名
import socketserver as sockserver # 一行导入多个模块
# import xx,ss,yy....

    2)方法二:

      from  模块名  import  xxx(名字)

      首次导入模块,前两件事和import导入的方法一样,第三件事直接拿xxx(属于执行文件的名称空间),xxx是指向模块中对应的值

      优点:不加前缀,代码比较精简

      缺点:容易与当前执行文件名称空间中的名字重复,导致无法引用

# 导入方法
from time import sleep
# 全部导入
from time import sleep *

    3)通过__name__区分py文件的两种用途

      a.if __name__ == '__main__'  文件被当做脚本执行

      b.等于模块名时,文件被当做模块导入

    4)模块的搜索路径

      内存   >  内置模块  >  sys.path

强调:

  sys.path的第一个值为当前执行文件的文件夹

  通过搜索顺序可以看出,通过from导入模块或者开发人员把当前执行文件的名字或者文件内的对象定义成引用的模块的名字时,会出现无法引用模块的错误

二、包

1.包

  1)定义

    包是一种通过使用 '.模块名  ' 来组织Python模块名称空间的方式,具体说包就是一个含有__init__.py文件的文件夹,创建的目的就是为了用文件夹/模块组织起来

  注意:

    a.在Python3.x中,即使包下没有__init__.py文件,导入包也不会出错,而在Python2.x中,包下必须存在该文件

    b.创建包的目的不是为了运行,而是被导入使用,包只是模块的一种形式,其本质就是模块

2.为什么使用包

  包是有文件夹组织起来的模块,文件夹的功能就是将模块组织起来,随着功能越写越多,我们将无法将所有功能都放在一个文件夹中,于是通过文件夹把模块组织起来,以提高程序的结构性和可维护性

参考:  http://www.cnblogs.com/linhaifeng/articles/6379069.html#_label10

补充知识:

包的使用
1.创建包的名称空间
2.在执行包下面的__init__文件的时候,将包内的名称保存到包的名称空间中
3.从执行文件内拿到的名字,并指向创建的包的模块名称空间中 强调:
1.在导入是带点的,点的左边必须是一个包,这是导入包特有的语法
2.包内,模块直接的导入应该使用from ... import ...
3.from ... import ...导入之后,必须是一个明确的名字,无任何前缀
from x.y.z import i.j.k # 错误,可以是模块或者和包 导入方式:
1.绝对导入:按绝对路径导入
2.相对导入:按相对路径导入
												

Python全栈-day14-模块和包的更多相关文章

  1. Python全栈--7模块--random os sys time datetime hashlib pickle json requests xml

    模块分为三种: 自定义模块 内置模块 开源模块 一.安装第三方模块 # python 安装第三方模块 # 加入环境变量 : 右键计算机---属性---高级设置---环境变量---path--分号+py ...

  2. Python全栈day14(集合)

    一,集合 1,集合由不同元素组成 2,无序 3,集合中元素必须是不可变类型 二,定义集合 1,s = {1,2,3,4,5} 2,s = set(hello)以迭代的方式生成集合 s = set(&q ...

  3. Python全栈day14(字符串格式化)

    一,%字符串格式化 1,使用%s 后面一一对应输入对应的字符串,%s可以接受任何参数 print ("I am %s hobby is zhangsan"%'lishi') pri ...

  4. Python全栈之路目录结构

    基础 1.Python全栈之路-----基础篇 2.Python全栈之路---运算符与基本的数据结构 3.Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数 4.Python全栈 ...

  5. Python全栈开发【模块】

    Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...

  6. python全栈开发中级班全程笔记(第二模块、第四章)(常用模块导入)

    python全栈开发笔记第二模块 第四章 :常用模块(第二部分)     一.os 模块的 详解 1.os.getcwd()    :得到当前工作目录,即当前python解释器所在目录路径 impor ...

  7. python全栈开发中级班全程笔记(第二模块、第四章(三、re 正则表达式))

    python全栈开发笔记第二模块   第四章 :常用模块(第三部分) 一.正则表达式的作用与方法 正则表达式是什么呢?一个问题带来正则表达式的重要性和作用      有一个需求 : 从文件中读取所有联 ...

  8. Python全栈之路----常用模块----hashlib加密模块

    加密算法介绍 HASH       Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列 ...

  9. python全栈开发之正则表达式和python的re模块

    正则表达式和python的re模块 python全栈开发,正则表达式,re模块 一 正则表达式 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的 ...

随机推荐

  1. spring相关的maven依赖

    <properties> <springframework.version>5.0.4.RELEASE</springframework.version> < ...

  2. vue关于html页面id设置问题

    vue是一个前端框架,类似于angularJS等,vue在编写的时候需要在html页面指定id,但是不是都可以实现的,一般放在id需在div设置里才可以实现. (一) 在html里设置id: < ...

  3. java中获取字母和数字的组合

    package com.ccytsoft.wkc.util; import java.util.ArrayList; import java.util.List; import java.util.R ...

  4. 微信6.7.4 ios12 软键盘收回时页面不回弹,导致光标位置错乱,再次点击输入框区域时无法focus

    https://developers.weixin.qq.com/community/develop/doc/00044ae90742f8c82fb78fcae56800 https://blog.c ...

  5. C++的类大小

    有以下C++类 #pragma pack(push) #pragma pack(1) class task /*:public OSThread*/{ //public: // void Entry( ...

  6. (1.8)mysql中的trace

    (1.8)mysql中的trace 以json格式存储

  7. Linux ifconfig 命令

    在centos6 自带ifconfig 在centos7 默认不带ifconfig,需要自己安装 ifconfig命令用来配置或查看网卡接口,常见用法如下: 安装ifconfig命令 [root@my ...

  8. ansible的安装及基本使用

    1.安装ansible 如果没有版本和别的要求,这里直接使用yum安装 yum -y install ansible 查看版本 [root@ ~]#ansible --version ansible ...

  9. shell脚本中 if 判断时候-s是什么意思

    -s file 文件大小非0时为真[ -f "somefile" ] :判断是否是一个文件 [ -x "/bin/ls" ] :判断/bin/ls是否存在并有可 ...

  10. sap gui 配置

    1: sap gui 安全配置 ,在左下角搜索sap gui configuration.