- 2
- 0
- 约1.21万字
- 约 7页
- 2016-10-09 发布于广东
- 举报
Python之块学习
Python之模块模块简介
python是由一系列的模块组成的,每个模块就是一个py为后缀的文件,同时模块也是一个命名空间,从而避免了变量名称冲突的问题。模块我们就可以理解为lib库,如果需要使用某个模块中的函数或对象,则要导入这个模块才可以使用,除了系统默认的模块(内置函数)不需要导入外。
导入直接使用如下语法: ?import 模块名称 (不要.py后缀)
这样导入成功后,就可以在另外一个模块中使用被导入模块的功能函数或对象。
举例如下,比如在F:\Pro-files\workspace\myPython目录下建立com.homer.python模块:module_1.py:
[python]?view plaincopyprint?
#?-*-?coding:utf-8?-*-??
module_1.py??
name?=?ithomer??
url?=???
上面第一行是指定编码格式,因为python默认是按照ascii编码来处理的,因此就无法处理非英文语言,通过指定编码就可以实现国际化效果,即容许中文注释。第二行是注释信息,使用”’进行注释。然后,我们通过F:\Pro-files\workspace\myPython\com\homer目录进入到python的命令行模式,这样就可以将当前目录作为工作目录,从而也就可以顺利的找到了module_1这个模块了,如下:
[python]?view plaincopyprint?
:\Pro-files\workspace\myPython\com\homerpython??
Python?3.3.3?(v3.3.3:c3896275c0f6,?Nov?18?2013,?21:19:30)?[MSC?v.1600?64?bit?(AMD64)]?on?win32??
Type?help,?copyright,?credits?or?license?for?more?information.??
???
?此时如果我们直接输入print(url),系统则会报错,url变量未定义:
[python]?view plaincopyprint?
?print(url)??
Traceback?(most?recent?call?last):??
??File?stdin,?line?1,?in?module??
NameError:?name?url?is?not?defined??
??
所以我们需要先导入module_1的内容才算定义了url变量,不过要注意的是导入的模块的变量并不是定义在顶层命名空间,而是在模块的命名空间中,因此使用如下方式导入后的打印变量如下:
[python]?view plaincopyprint?
?import?module_1??
?print(module_1.url)??
??
?如果直接使用print(url),仍然还是会报url未定义的错误,原因就是上面说到的命名空间的问题。如果想要直接在顶层命名空间中使用该变量,可以使用如下导入方式:
[python]?view plaincopyprint?
?from?module_1?import?url??
?print(url)??
??
这样就可以将module_1模块中的url变量导入到顶层命名空间了,直接使用变量也就不会报错了。当然我们也可以为导入的变量重命名,如下把url重命名为myurl:
[python]?view plaincopyprint?
?from?module_1?import?url?as?myurl??
?print(myurl)??
??
这样就可以将url的值赋给myurl这个变量了,因为是使用了from…import语句,因此是将变量绑定在顶层命名空间,我们也就可以直接使用变量名了。
?需要注意的是无论是使用import还是使用from..import的方式导入模块,其实都是在告诉python解释器要加载指定的模块,并执行模块中的所有语句,因此如果模块中有类似print的语句时,我们在导入的过程中也会看到这些语句的输出。
对于每个模块的导入,python解释器只会导入一次,即使重复使用import和from…import语句,也只有在PVM检测到该模块没有被导入时才执行导入动作。即使后来你修改了模块的源代码,但没有重启PVM,python解释器仍然是使用之前导入的内容在处理。如果需要重新载入修改后的源码,一是退出python的交互模式后再进入,二是直接使用reload语句,如下:
[python]?view plaincopyprint?
?from?imp?import?reload??
?reload(module_1)??
module?module_1?f
您可能关注的文档
最近下载
- 医院电子病历五级工作组工作制度及流程.docx VIP
- 增值税发票开票系统操作流程.doc VIP
- 建筑工程图集 15D202-2:柴油发电机组设计与安装.pdf VIP
- 2024商丘医学高等专科学校教师招聘考试真题及答案.docx VIP
- 现代工程图学习题集(第5版)杨裕根 课后习题答案解析.pdf
- 医院电子病历分级评价现场演练专家问题总结(五级).pdf VIP
- 狂犬病病毒攻毒犬唾液排毒与病毒在体内的分布研究.pdf VIP
- 桩基施工方案桩基桩基施工方案施工方案桩基础施工方案桩基施工.docx
- 屋面防水工程工程施工组织设计方案.docx VIP
- 2025年沈阳市直机关遴选公务员笔试真题汇编带答案解析.docx VIP
原创力文档

文档评论(0)