频道栏目
首页 > 程序开发 > Web开发 > Python > 正文
Python 模块 - 什么是模块?为什么要用模块?
2018-05-07 10:34:49      个评论    来源:天才小楼楼  
收藏   我要投稿

一、什么是模块

模块就是一组功能的集合体,模块组织形式有以下几种

1、一个python文件是一个模块,文件名是module.py,模块名则是module(自定义模块的常见格式)

2、 已被编译为共享库或DLL的C或C++扩展

3、使用C编写并链接到python解释器的内置模块

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

二、为什么要用模块

1、可以将程序中频繁用来的一些公共的功能组织到一个文件中,从而减少代冗余

2、直接使用内置或者第三方的模块中的功能,这种拿来主义可以提升开发效率

三、如何用模块

导入模块的方式:

import sudada #导入一个模块sudada(在当前目录下)

from sudada import xx #导入一个模块sudada,只使用模块内的xx这个变量

from sudada.X.X import xx as rename #导入多个模块,并给这些模块定义一个别名

from sudada.X.X import * #导入多个模块,使用模块内所有的变量(*代表所有)

模块导入需要注意的点:

导入多个相同的模块,只会执行一次

模块路径:查看当前文件所在的绝对路径

import sys
print(sys.path)

>>['C:\\Users\\stsud\\Desktop\\Pycharm文档', 'C:\\Users\\stsud\\Desktop\\Pycharm文档', 'C:\\Install Path\\Python3.6\\python36.zip', 'C:\\Install Path\\Python3.6\\DLLs', 'C:\\Install Path\\Python3.6\\lib', 'C:\\Install Path\\Python3.6', 'C:\\Install Path\\Python3.6\\lib\\site-packages', 'C:\\Install Path\\Python3.6\\lib\\site-packages\\pip-10.0.1-py3.6.egg', 'C:\\Install Path\\Pycharm-破解\\PyCharm 2018.1\\helpers\\pycharm_matplotlib_backend']

四、模块的导入与调用

4.1 import 方式

首次导入模块:

1.会产生一个模块的名称空间

2.会执行模块文件的代码,将产生的名字放到模块的名称空间中

3.会在当前名称空间中拿到一个模块名,该模块名执行模块的名称空间

import parm  # 导入模块parm
print(parm.money)  # 引用parm模块中的money时,不能直接写变量名(直接写money找到的是当前文件内的变量money),需要在变量名前加模块名(parm.money)

import parm as sm  # 导入模块指定一个别名为sm,那么引用这个别名sm即可
print(sm.money)

import parm, sudada, ssp  #引用多个模块,中间用逗号隔开

优点:指名道姓的访问模块名称空间的名字,不会与当前名称空间的名字冲突

缺点:每次引用模块时都需要加模块名前缀

4.2 from ... import ... 方式

首次导入模块:

1.会产生一个模块的名称空间

2.会执行模块文件的代码,将产生的名字放到模块的名称空间中

3.会在当前名称空间中直接拿到一个模块名称空间的名字

强调:来自于模块名称空间内的函数,调用该函数时一定是已模块的名称空间为准的

from parm import money    #导入模块parm中的money
print(money)

from parm import money,read1,read2    #导入模块parm中的money,read1,read2,用逗号分开
print(money)
print(read1)
print(read2)

from parm import money as sm   #导入模块parm中的money并给money定义别名为sm
print(sm)

导入模块内所有的名字

from parm import *    #导入模块parm中的所有名称空间的名字(*表示所有),不推荐使用
print(money)
print(read1)
print(read2)

自定义导入模块内所有的名字

1.在模块内(文件的开头)写一个内置变量"__all__=['名称1','名称2']"

__all__=['money','read1']

2.那么当使用from parm import *时,*号表示的就是moneyread1这2个变量了

from parm import *
print(money)
print(read1)

优点:导入方便

缺点:在使用模块内的名称时容易与当前文件内的变量值混淆

五、一个Python文件当做脚本使用时,和当做模块使用时的区别

5.1、使用内置函数"__name__"来区分python文件是当做脚本单独使用还是被当做模块使用

在python文件中定义"print(__name__)",当这个python文件被当做脚本执行时,返回值为"__main__"

print(__name__)

>> :__main__  #运行python文件时,返回值为"__main__"表示当前文件为python脚本文件

当这个python文件被当做模块引用时,返回值为"模块名"

import parm

# parm   #被当做模块引用时,"print(__name__)"返回值为"模块名称"

5.2、区分python文件的用途

1.通常在python文件末尾加上条件判断,定义这个python的用途(当做模块还是脚本文件)

if __name__ == '__main__':
    money
    read1()
    read2()

六、模块的搜索路径

1.查找模块的顺序

内存-->内置-->sys.path

查看当前模块所在的路径:sys模块

import sys
print(sys.path)

>>['C:\\Users\\stsud\\Desktop\\Pycharm文档', 'C:\\Users\\stsud\\Desktop\\Pycharm文档', 'C:\\Install Path\\Python3.6\\python36.zip', 'C:\\Install Path\\Python3.6\\DLLs', 'C:\\Install Path\\Python3.6\\lib', 'C:\\Install Path\\Python3.6', 'C:\\Install Path\\Python3.6\\lib\\site-packages', 'C:\\Install Path\\Python3.6\\lib\\site-packages\\pip-10.0.1-py3.6.egg', 'C:\\Install Path\\Pycharm-破解版\\PyCharm 2018.1\\helpers\\pycharm_matplotlib_backend']
sys.path的值是以当前执行文件为准(sys.path的值为当前文件所在的目录)
点击复制链接 与好友分享!回本站首页
上一篇:Python开发切片解析
下一篇:Python Socket 编程:聊天室程序的展开
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站