Python自定义包使用方法_第1页
Python自定义包使用方法_第2页
Python自定义包使用方法_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Python Python 自定义包使用方法介绍python Module py 可以看成一个module.py 文件,在另一个文件中需要 python Module py 可以看成一个module.py 文件,在另一个文件中需要 import 时,将事先写好的 .py 文件拷贝到当前目录,或者是在sys.path 中增加事先写好的.py 文件所在的目录,然后import。如果将相关的 py 文件放到一个目录下然后在加上一个 init.py 文件,就构成了一个包。在每一个包中,都有一个 init.py(这个文件定义了包的属性和方法然后是一些模块文件和子目录假如子目录中也init.py那么它就是

2、这个包的子(xml 的时候,实际上导入了它的init.py 文件。一个包是一个带有特殊文件 init.py 的目录init.py 文件定义了包的属性和方法。其实python 在执行 import 语句时,它执行了如下操作:第 1 步,创建一个新的,空的 module 对象(它可能包含多个modul;2 module sys.module 中3 module 程序所在的位置,其原理3 module 的代码(如果需要,首先必须编译3 module 程序所在的位置,其原理为:11)当前目录2)2)PYTHONPATH中指定的路径列表中依次搜索3)python 的安装设置相关的默认路径,在Unix 下

3、,通常为/user/local/lib/pythonPYTHONPATHPYTHONPATH中存在module module,则会覆盖标准module果当前目录下存在xml.py,那么执行importxml 时,导入的是当前目录下的 module,而不是系统标准的xml。简单目录结构下模块调用方法 如test fun 中的sum 1)在同一目录下。直接引用名字即可-maindir fun.py test.py调用方法:importfunfun.sum() 2)-maindir-subdir fun.py sum.py调用方法在subdir 中创建文init将subdir 看成一个包对待)2)在

4、test.py 中importsubdir.fun subdir.fun.sum()2subdir 目录添加到搜索路径,在test #加载到fun 所在的目录importsyssys.path.append(subdir)#也可通过添加环境变量的方法,如exportPYTHONPAHT=$PYTHONPATH:/*/maindir/subdir#importfunfun.sum()搜索路径是fun.py 所在的目录,可将其目录添init的方式搜索路径是fun.py 所在的目录,可将其目录添init的方式import 目录名.fun 2 1复杂目录架构下模块调用方法 采用sys.path.app

5、end加载到文件所在目录的方式对于少数文件还可,如果目录层次复杂、数目较多时,就会变得吃力。此时就要过环境变量PYTHONPATH和init.py同步使用的方式如下多级目录:-maindir-dir1-subdir1 fun.py-dir2-subdir2 test.py调用方法:exportPYTHONPAHT=$PYTHONPATH:/system_enc/python/maindir此后,加载模块时,可以此开始(os.sys.path 查看)2)在需要被调用的模块的所在层级目录中均增加init.py 文exportPYTHONPAHT=$PYTHONPATH:/system_enc/py

6、thon/maindir此后,加载模块时,可以此开始(os.sys.path 查看)2)在需要被调用的模块的所在层级目录中均增加init.py 文录看做一个包进行处理,查找其下的文件模块。如上,如上,test.py fun.pyfun.py subdir1及上级目录dir1都增init.py文件,到主目录maindir为止。-maindir-dir1 -maindir-dir1 init.py-subdir1-subdir1 init.pyfun.py init.pyfun.py-dir2-subdir2test.py注:上述中1)和缺一不可init被动的模块中需要增加,主调函数所在目录中不需

7、要添加。 inity件内容一个包是一个带有特殊文一个包是一个带有特殊文init.py的目录。init.py文件文件,但是必须存在init.py可以为空,只要它存在,就表明目录应被作为一个package处理。当然init.py中也可以设相应的内容,下文详细介绍。1.1.定义一个函数在在init.py 中定义一个函数,可直接通过目录函数名来调用。33dir1demo函数,test.py中,可通过importdir1dir1.demo()来进行调用-maindir-dir1-maindir-dir1 init.py#defdemo():-subdir1 init.pyfun.py-dir2-subd

8、ir2test.py2.导入其他包或模块-subdir1 init.pyfun.py-dir2-subdir2test.py2.导入其他包或模块当我们导入这个包的时候init.py文件自动运行,在其import写在一个文件里了,也可以减少代码量。不需要一个个去导入module 了。 init.py 中还有一个重要的变量,叫做all。我们有时会使 出一招“全部导入,也就是这样fromPackageNameimport*这时这时import就会把注册在init.py文件all列表中的子模块和子包导入到当前作用域中来。比如:-maindir-dir1 init-maindir-dir1 init.py#all=test1,subdir1test1.py-subdir1 init.py#all=fun或importfunfun.py-dir2-subdir2test2.py此时在test1.pyformsubdir1import*#加载了dir1 下fun 模块fun.sum()#不需要加subdir1 层次在test2.pyfun.py-dir2-subdir2test2.py此时在test1.pyformsubdir1import*#加载了dir1 下fun 模块fun.sum()#不需要加subdir1 层次在test2.pyformdir1import*#加载了dir

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论