假设名为A.py的文件需要调用B.py文件内的C(x,y)函数

假如在同一目录下

则只需

import B
if __name__ == "__main__":
    B.C(x,y)

如果只需调用单个函数,也可以

from B import C
if __name__ == "__main__":
    C(x,y)

如果跨越了层级

同目录下不同子文件夹

直接引用会报错,

test
  |- dir
  |   |- B.py
  |- A.py
  
import dir.b
print dir.b.name

提示找不到这个模块的名字 dir.b 。通过查找官方文档,发现要包含目录下的文件时需要在目录下声明一个init.py文件,即使这个文件是空的也可以。当然这个文件也可以初始一些数据。

test
  |- dir
  |   |- B.py
  |   |- __init__.py
  |- A.py
  
import dir.b
print dir.b.name

重新执行A.py,一切OK!

不同目录下

若A.py和B.py位于不同的目录下,可以用以下方法

(假设B.py位于D盘的根目录下)

引用所在路径

import sys
sys.path.append('D:/')
import B
if __name__=="__main__":
    print B.pr(x,y)

使用imp

import imp
B=imp.load_source('B','D:/B.py')
import B
if __name__=="__main__":
    print B.pr(x,y)