码迷,mamicode.com
首页 > 编程语言 > 详细

Python全栈-day14-模块和包

时间:2018-04-04 23:18:54      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:共享库   出现   文件名   执行   顺序   创建文件   nbsp   ini   错误   

一、模块

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.在当前执行文件中拿到一个模块名,该模块指向1建立的名称空间

# 导入和调用模块内的功能
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

 


 

Python全栈-day14-模块和包

标签:共享库   出现   文件名   执行   顺序   创建文件   nbsp   ini   错误   

原文地址:https://www.cnblogs.com/mdzzbojo/p/8719109.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!