You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python如何调用其他.py文件并正确使用其返回值?

关于调用Python文件及使用返回值的问题解答

首先直接说:你的示例写法不正确,我会一步步帮你理清问题,再给出正确的实现方式。

问题1:如何调用另一个.py文件并使用其返回值?

要调用另一个.py文件里的函数/方法,核心是正确导入目标模块/类/函数,然后按照规则调用(类方法和普通函数的调用方式不一样),最后接收返回值。

分情况说明:

情况1:目标是普通函数(不带self的函数)

假设你有file1.py,里面是普通函数:

# file1.py
def get_system_values():
    # 模拟业务逻辑生成返回值
    value_1 = 10
    value_2 = 20
    return value_1, value_2

file2.py中调用它:

# file2.py
# 导入file1里的get_system_values函数
from file1 import get_system_values

def to_do():
    # 调用函数,直接接收返回的两个值
    val1, val2 = get_system_values()
    # 这里就可以使用返回值了
    print(f"获取到的值:{val1}, {val2}")

# 测试调用
to_do()

情况2:目标是类方法(带self的方法,像你的示例)

你的示例里system是类方法,这种情况不能直接通过模块调用,必须先实例化对应的类,再调用方法。

修正你的示例:

# file1.py
# 先定义包含system方法的类
class SystemHandler:
    def system(self):
        # 模拟业务逻辑
        value_1 = 50
        value_2 = 60
        return value_1, value_2
# file2.py
# 导入file1里的SystemHandler类
from file1 import SystemHandler

class TaskHandler:
    def to_do(self):
        # 第一步:实例化SystemHandler类
        sys_handler = SystemHandler()
        # 第二步:调用实例的system方法,接收返回值
        result1, result2 = sys_handler.system()
        # 使用返回值做后续操作
        print(f"处理后的值:{result1 * 2}, {result2 * 2}")

# 测试
task = TaskHandler()
task.to_do()

问题2:如何在另一个文件中使用返回值?

调用函数/方法后,把返回值赋值给变量,就可以在当前文件的任何地方使用这些变量了——比如用于计算、作为其他函数的参数、存储到数据库等。

举个扩展例子:

# file2.py
from file1 import get_system_values

def calculate_sum(a, b):
    return a + b

def to_do():
    val1, val2 = get_system_values()
    # 把返回值传给其他函数
    total = calculate_sum(val1, val2)
    print(f"两个值的和是:{total}")

你的示例代码问题分析

你写的result = file_location.file1(value_1, value2)有几个问题:

  • system是类方法,你没有实例化类就直接调用,会报错(因为缺少self参数);
  • 调用时传入了value_1, value2,但system方法本身不需要额外参数(它是返回这两个值,不是接收);
  • 导入和调用的语法有误,应该先导入目标类,再实例化调用。

内容的提问来源于stack exchange,提问作者Plane

火山引擎 最新活动