python学习_day27_模块与包
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习_day27_模块与包相关的知识,希望对你有一定的参考价值。
一、模块
一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。
1、模块的调用
调用语法:import ...或者from ... import...
调用事项:同一个模块不会被重复导入(import语句是可以在程序中的任意位置使用的,且针对同一个模块import多次,为了防止你重复导入,python的优化手段是:第一次导入后就将模块名加载到内存了,后续的import语句仅是对已经加载大内存中的模块对象增加了一次引用,不会重新执行模块内的语句);导入模块的顺序:内置模块、需要安装的扩展模块、自己写的模块;导入模块的规则:不要在同一行导入多个模块
2、模块的命名空间
每个模块都是一个独立的名称空间,定义在这个模块中的函数,把这个模块的名称空间当做全局名称空间,这样我们在编写自己的模块时,就不用担心我们定义在自己模块中全局变量会在被导入时,与使用者的全局变量冲突。
#my_module模块 money=1000 def read1(): print(‘my_module->read1->money‘,money) def read2(): print(‘my_module->read2 calling read1‘) read1() def change(): global money money=0
例1:money与my_module.money不冲突
import my_module money=10 print(my_module.money) #输出结果:1000
例2:read1()与my_module.read1()不冲突
import my_module def read1(): print(‘========‘) my_module.read1() #输出结果:my_module->read1->money 1000
3、模块重命名
为已经导入的模块起别名的方式对编写可扩展的代码很有用。语句:“from 模块名 import 名字 as 重命名” 或者“import 名字 as 重命名”
应用实例:有两种模块mysql和oracle,都包含sqlparse()函数,根据用户的输入,选择不同的sqlparse()功能函数。
#mysql.py def sqlparse(): print(‘from mysql sqlparse‘) #oracle.py def sqlparse(): print(‘from oracle sqlparse‘) #test.py db_type=input(‘>>: ‘) if db_type == ‘mysql‘: import mysql as db elif db_type == ‘oracle‘: import oracle as db db.sqlparse()
4、from...import...相关
对比import my_module,会将源文件的名称空间‘my_module‘带到当前名称空间中,使用时必须是my_module.名字的方式;而from 语句相当于import,也会创建新的名称空间,但是将my_module中的名字直接导入到当前的名称空间中,在当前名称空间中,直接使用名字就可以了。
from my_module import read1 def read1(): print(‘aaaaa‘) read1()
以上是关于python学习_day27_模块与包的主要内容,如果未能解决你的问题,请参考以下文章