也是前两天遇到的问题,一般来说遇到这样的问题是像我似的,把代码都写到一个文件里,后来做别的东西跟它衔接的时候发现需要用里面的函数,但是又觉得从这个文件拷贝函数到那个文件太low了...而且不利于维护和修改,所以就上网查了查
这个跟调用python库不一样,python库时直接安装在python环境中,并且支持直接import引入,现在的情况是这个样子:
我有mainfile和fucfile两个文件,这两个文件在一个目录下(在不在都可以,这里是为了演示方便),我想要在mainfile中调用Mathadd的函数功能
这里我们分三种情况:
两个文件在一个文件夹下--》允许直接import调用
# mainfile.py
import Mathadd
print(Mathadd.add(3,4))
#Mathadd.py
def add(x, y):
return (x+ y)
输出
F:\PROGRAMME\python\python.exe F:/SOFTWARE/编程软件/python/projet/test/mainfile.py
7
第二种情况不在一个文件夹下--》添加环境变量再import调用
这个引入方法跟我们调用库类似,但是默认情况下库可以引用是因为他们的路径再python的环境路径中,import时候编辑器就是从路径中查找库并引入,这个原理就类似
就是我们的系统环境变量一样,引入路径之后,cmd直接调用程序时候,就会按照这个路径列表查找是否有该文件名并打开。
python的库也是一样,所以只要我们将Mathfild.py的绝对路径加入python路径变量中,他就可以找到对应的文件并调用
测试一下:
mainfile
import sys
# 这里的不一定非要在一个文件夹下,只要填写绝对路径就可以
sys.path.append(r'F:\SOFTWARE\编程软件\python\projet\test')
'''该sys.path列表维护的就是环境路径集合。。
使用py文件前先将其路径加入集合,然后就可以像库一样调用'''
import Mathadd
print(Mathadd.add(3, 4))
Mathadd.py
def add(a, b):
return a + b
输出:
F:\PROGRAMME\python\python.exe F:/SOFTWARE/编程软件/python/projet/test/mainfile.py
7
前两种都是调用函数的,我们还可以调用其他文件的类-->大致方法同上
这里仅仅演示同一个文件夹下的
首先在mainfile里引入类
from Mathadd import Mathadd
math = Mathadd(3, 4)
print(math.add())
在Mathadd里定义好类和方法
# 用于支持两个数字运算,初始化时输入数字
class Mathadd:
def __init__(self, x, y):
self.x = x
self.y = y
def add(self):
return self.x+self.y
def sub(self):
return self.x-self.y
同样的道理,直接调用
输出:
F:\PROGRAMME\python\python.exe F:/SOFTWARE/编程软件/python/projet/test/mainfile.py
7
这个也不难,但是确实挺实用的。O(∩_∩)O哈哈~