python文件导入的一个例子

来源:互联网 发布:电子海洛因 知乎 编辑:程序博客网 时间:2024/06/01 20:36
 每一个.py文件称为一个module,module之间可以互相导入.请参看以下例子:
# a.py
def add_func(a,b):
    return a+b

# b.py
from a import add_func # Also can be : import a
print "Import add_func from module a"
print "Result of 1 plus 2 is: "
print add_func(1,2)    # If using "import a" , then here should be "a.add_func"

module可以定义在包里面.Python定义包的方式稍微有点古怪,假设我们有一个parent文件夹,该文件夹有一个child子文件夹.child中有一个module a.py . 如何让Python知道这个文件层次结构?很简单,每个目录都放一个名为__init__.py 的文件.该文件内容可以为空.这个层次结构如下所示: 
parent 
  --__init__.py
  --child
    -- __init__.py

    --a.py


b.py


    那么Python如何找到我们定义的module?在标准包sys中,path属性记录了Python的包路径.你可以将之打印出来:


import sys
print sys.path


    通常我们可以将module的包路径放到环境变量PYTHONPATH中,该环境变量会自动添加到sys.path属性.另一种方便的方法是编程中直接指定我们的module路径到sys.path 中:

import sys
sys.path.append('D:\\download')
from parent.child.a import add_func
print sys.path
print "Import add_func from module a"
print "Result of 1 plus 2 is: "

print add_func(1,2)

运行结果:

['D:\\download', 'D:\\Python27\\Lib\\idlelib', 'C:\\windows\\system32\\python27.zip', 'D:\\Python27\\DLLs', 'D:\\Python27\\lib', 'D:\\Python27\\lib\\plat-win', 'D:\\Python27\\lib\\lib-tk', 'D:\\Python27', 'D:\\Python27\\lib\\site-packages', 'D:\\download']
Import add_func from module a
Result of 1 plus 2 is: 
3


0 0
原创粉丝点击