python基础_学习笔记:充电时刻——模块.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
充电时刻——模块python的标准安装包括一组模块,称为标准库。模块?import?math?math.sin(0)0.0模块是程序任何python程序都可以作为模块导入。$?cat?hello.py#!/usr/bin/pythonprint?Hello,signjing!?$?./hello.pyHello,signjing!假设将python程序保存在/home/ggz2/magiccube/mysh/pys目录中,执行下面的代码:??import?sys?sys.path.append(/home/ggz2/magiccube/mysh/pys)?这里所做的只是告诉解释器:除了从默认的目录中寻找之外,还需要从目录/home/ggz2/magiccube/mysh/pys中寻找模块。完成这个步骤后,就能导入自己的模块了:?import?helloHello,signjing!?注意:在导入模块的时候,可能会看到有新文件出现,本例中是/home/ggz2/magiccube/mysh/pys/hello.pyc。这个以.pyc为扩展名的文件是(平台无关的)经过处理(编译)的,已经转换成python能够更加有效地处理的文件。如果稍后导入同一个模块,python会导入.pyc文件而不是.py文件,除非.py文件已经改变——在这种情况下,会生成新的.pyc文件。删除.pyc文件不会损害程序(只要等效的.py文件存在即可)——必要的时候会创建新的.pyc文件。?如你所见,在导入模块的时候,其中的代码就被执行了。不过再次导入该模块,就不会发生什么了。?import?hello?因为导入模块并不意味着在导入时执行某些操作。它们主要用于定义。此外,因为只需要定义这些东西一次,导入模块多次和导入一次的效果是一样的。模块用于定义模块在第一次导入程序中时被执行。这看起来有点用——但并不算很有用。真正的用处在于它们(像类一样)可以保持自己的作用域。这就意味着定义的所有类和函数以及赋值后的变量都成为了模块的特性。在模块中定义函数$?cat?hello2.py#!/usr/bin/pythondef?hello():????????print?morning,signjing??import?hello2?hello2.hello()morning,signjing可以通过同样的方法来使用任何在模块的全局作用域中定义的名称。为了让代码可重用,请将它模块化!在模块中增加测试代码模块用来定义函数、类和其他一些内容,但有些时候(事实上是经常),在模块中添加一些检查模块本身是否正常工作的测试代码是很有用的。$?cat??hello3.py#!/usr/bin/pythondef?hello():????????print?Hello!?#?a?testhello()??import?hello3Hello!?hello3.hello()Hello!?避免这种情况的关键在于:“告知”模块本身是作为程序运行还是导入到其他程序。为了实现这一点,需要使用__name__(双下划线)变量:??__name____main__?hello3.__name__hello3?可见,在主程序(包括解释器的交互式提示符在内)中,变量__name__的值是’__main__’。而在导入的模块中,这个值被设定为模块的名字。因此,为了让模块的测试代码更加好用,可以将其放置在if语句中:$?cat?hello4.py#!/usr/bin/pythondef?hello():????????print?hello?def?test():????????hello()?if?__name__==__main__:test()???import?hello4?hello4.hello()hello让你的模块可用将模块放置在正确位置将你的模块放置在正确位置(或者某个正确位置)是很容易的。只需要找出python解释器从哪里查找模块,然后将自己的文件放置在那里即可。linux系统:?import?sys,pprint?pprint.pprint(sys.path).’ ’;[,?/usr/lib64/python26.zip,?/usr/lib64/python2.6,?/usr/lib64/python2.6/plat-linux2,?/usr/lib64/python2.6/lib-tk,?/usr/lib64/python2.6/lib-old,?/usr/lib64/python2.6/lib-dynload,?/usr/lib64/python2.6/site-packages,?/usr/lib64/python2.6/site-packages/gtk-2.0,?/usr/lib/

文档评论(0)

502992 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档