在使用python编程时,有时我们需要自行编写一些函数程序文件,并在其他.py文件中调用,这时应该怎么做呢?本文记录下调用方法。
情形一:函数文件与调用文件在同一个目录下
在编写某课程大作业时,需要用蚁群算法(ACO,Ant Colony Optimization)解决旅行商问题(TSP,Travelling salesman problem),在编写了ACO算法后,发现程序文件太长,将调用函数也写入相同的文件显得太不直观,可读性很差,遂将这两部分分入两个程序文件,文件结构如下图:
图中ACO_TSP.py实现了算法部分,main.py实现了函数调用部分,算法部分函数定义如下:
import ... #此处是调用一些必要的库
def ACO_process(calculate_SN):
#具体细节略
main.py中的调用部分如下:
from ACO_TSP import ACO_process #调用ACO算法函数,理解为从ACO_TSP文件中调用ACO_process函数
ACO_process(i) #函数使用方式
以上,即可实现对自己写好的函数进行调用了。
情形二:函数文件和调用文件不在一个文件夹下
在编写PID实现小车轨迹规划的程序时,写了很多个功能函数,为了使文件夹结构显得简洁清爽,将所有功能函数存在同一个文件夹——func文件夹下,只留一个main函数在外面,运行时简单易懂,运行这个Main.py就可以啦,但是用上面的函数调用方式就会报错,首先看看文件结构:
Classes.py、plot.py等功能函数都在func文件夹中,不在主函数所在的路径下,所以直接调用会报错:
这是因为在该路径下找不到这些文件,程序认为这些模块是缺失的,因此,此问题的解决方式为在Main.py函数中加入以下代码:
import sys
sys.path.append('func')
把功能程序存放的路径作为搜索路径添加进来就可以了。