[Python自定义包使用方法.docxVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[Python自定义包使用方法

Python自定义包使用方法1.介绍python中的Module是比较重要的概念,每个py可以看成一个module。常见的情况是,事先写好一个.py文件,在另一个文件中需要import时,将事先写好的.py文件拷贝到当前目录,或者是在sys.path中增加事先写好的.py文件所在的目录,然后import。如果将相关的py文件放到一个目录下然后在加上一个__init__.py文件,就构成了一个包。在每一个包中,都有一个__init__.py文件(这个文件定义了包的属性和方法)然后是一些模块文件和子目录,假如子目录中也有__init__.py那么它就是这个包的子包了。当你将一个包作为模块导入(比如从xml导入dom)的时候,实际上导入了它的__init__.py文件。一个包是一个带有特殊文件__init__.py的目录。__init__.py文件定义了包的属性和方法。其实它可以什么也不定义;可以只是一个空文件,但是必须存在。python在执行import语句时,它执行了如下操作:第1步,创建一个新的,空的module对象(它可能包含多个module);第2步,把这个module对象插入sys.module中第3步,装载module的代码(如果需要,首先必须编译)第4步,执行新的module中对应的代码。在执行第3步时,首先要找到module程序所在的位置,其原理为:1)当前目录2)环境变量中PYTHONPATH中指定的路径列表中依次搜索3)python的安装设置相关的默认路径,在Unix下,通常为/user/local/lib/python正因为存在这样的顺序,如果当前路径或PYTHONPATH中存在与标准module同样的module,则会覆盖标准module。也就是说,如果当前目录下存在xml.py,那么执行importxml时,导入的是当前目录下的module,而不是系统标准的xml。2.简单目录结构下模块调用方法如test中调用fun中的sum函数,目录机构如下:1)在同一目录下。直接引用名字即可--maindirfun.pytest.py调用方法:importfunfun.sum()2)不同目录--maindir--subdirfun.pysum.py调用方法1:1)在subdir中创建文件__init__.py(将subdir看成一个包对待)2)在test.py中importsubdir.funsubdir.fun.sum()调用方法2:将subdir目录添加到搜索路径,在test中:#加载到fun所在的目录importsyssys.path.append(subdir)##也可通过添加环境变量的方法,如exportPYTHONPAHT=$PYTHONPATH:/**/maindir/subdir###此后使用等同于同一目录importfunfun.sum()从上例可看出,如果添加fun.py的路径到模块调用的搜索路径下,那就等同于与其在同一目录下的使用。如上2中的调用方法2。如果搜索路径是fun.py所在的目录,可将其目录添加__init__.py)的方式,看成一个包,通过import目录名.fun的加载方式使用其中函数,如上2中的调用方法13.复杂目录架构下模块调用方法采用sys.path.append加载到文件所在目录的方式,对于少数文件还可,如果目录层次复杂、数目较多时,就会变得吃力。此时就要通过环境变量PYTHONPATH和__init__.py同步使用的方式。如下多级目录:--maindir--dir1--subdir1fun.py--dir2--subdir2test.py调用方法:1)将maindir作为一个主目录,增加到环境变量中,如miandir所在目录为/system_enc/python/maindir,可将subdir1目录添加到环境变量中:exportPYTHONPAHT=$PYTHONPATH:/system_enc/python/maindir此后,加载模块时,可以此开始。(通过os.sys.path查看)2)在需要被调用的模块的所在层级目录中均增加__init__.py文件,到上述所添加的环境变量中的主目录为止。此后编译会将其层目录看做一个包进行处理,查找其下的文件模块。如上,test.py调用fun.py,就需要在fun.py所在的目录subdir1及上级目录dir1都增加__init__.py文件,到主目录maindir为止。--maindir--dir1__init__.py--subdir1__init__.pyfun.py--dir2--subdir2test.py注:上述中1)和2)缺一不可。__init__.py,被动的模块中需要增加,主调函数所在目录中不需要添加。4._

文档评论(0)

yingrong + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档