Python包的使用
包对应的是一个目录而不是一个源文件,包目录下一定要存在一个名为 __init__.py 的文件。如我们可以创建下面的目录结构:
$ tree pkgDemo1/
pkgDemo1/
└── __init__.py
这里 pkgDemo1 目录就是一个包。
>>> import pkgDemo1 >>> pkgDemo1 <module 'pkgDemo1' from '/pkgDemo1/__init__.py'>
__init__.py 现在就是一个模块,可以使用前面介绍的方法来使用其定义的内容。如修改 __init__.py 的内容,让其包含以下内容:
""" this is the pakage demo file """ name = "pkgDemo1" author = "love.pythoh"
现在就可以访问这些新加的内容了:
>>> import pkgDemo1 >>> pkgDemo1.name 'pkgDemo1' >>> pkgDemo1.author 'love.pythoh' >>> pkgDemo1.__doc__ ' this is the pakage demo filen'
一般来说,一个包包含多个模块。例如在同一个目录下放入两个文件 mod1.py 和 mod2.py,它们的结构如下:
$ tree pkgDemo1/ pkgDemo1/ ├── __init__.py ├── mod1.py └── mod2.py
mod1.py 的内容如下:
""" this is mod1.py """ name = "pkgDemo1.mod1" def hello(): print("hello from pkgDemo1.mod1")
mod2.py 的内容如下:
""" this is mod2.py """ name = "pkgDemo1.mod2" def hello(): def hello(): print("hello from pkgDemo1.mod2")
下面来使用这个包的内容,代码如下:
>>> import pkgDemo1.mod1 # 引入mod1,注意前面的包名 >>> import pkgDemo1.mod2 # 引入mod2,注意前面的包名 >>> pkgDemo1.mod1 <module 'pkgDemo1.mod1' from 'pkgDemo1/mod1.py'> >>> pkgDemo1.mod2 <module 'pkgDemo1.mod2' from '/pkgDemo1/mod2.py'> >>> pkgDemo1.mod1.hello() # 带上包名和模块名 hello from pkgDemo1.mod1 >>> pkgDemo1.mod2.hello() hello from pkgDemo1.mod2
本文链接:http://so.lmcjl.com/news/377/