也是前两天遇到的问题,一般来说遇到这样的问题是像我似的,把代码都写到一个文件里,后来做别的东西跟它衔接的时候发现需要用里面的函数,但是又觉得从这个文件拷贝函数到那个文件太low了...而且不利于维护和修改,所以就上网查了查

 

这个跟调用python库不一样,python库时直接安装在python环境中,并且支持直接import引入,现在的情况是这个样子:

Python怎么调用其他方法的参数 python中调用其他py中的函数_编程软件

我有mainfile和fucfile两个文件,这两个文件在一个目录下(在不在都可以,这里是为了演示方便),我想要在mainfile中调用Mathadd的函数功能

Python怎么调用其他方法的参数 python中调用其他py中的函数_绝对路径_02

 

Python怎么调用其他方法的参数 python中调用其他py中的函数_Python怎么调用其他方法的参数_03

Python怎么调用其他方法的参数 python中调用其他py中的函数_Python怎么调用其他方法的参数_04

 

这里我们分三种情况:

 

两个文件在一个文件夹下--》允许直接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时候编辑器就是从路径中查找库并引入,这个原理就类似

Python怎么调用其他方法的参数 python中调用其他py中的函数_编程软件_05

就是我们的系统环境变量一样,引入路径之后,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哈哈~