You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python函数变量访问问题:如何在main中输出equation内的price变量

解决方法:如何在main()中正确打印函数内的price变量

嘿,你遇到的price is not defined报错是因为变量作用域的问题——price是定义在equation函数内部的局部变量,只有在equation函数的代码块里才能访问它,外部的main函数根本“看不到”这个变量。

下面给你两种可行的解决方式,优先推荐第一种:

方案一:利用函数返回值(推荐)

你的equation函数已经写了return price,但main里调用函数时没有接收这个返回值。只需要在main中接住函数返回的结果,再打印就可以了:

def equation(a, b):
    price = (a + b) * 2
    return price

def main():
    # 接收equation函数返回的计算结果
    calculated_price = equation(5, 10)
    print(calculated_price)
    # 也可以直接打印函数返回值,省掉中间变量
    # print(equation(5, 10))

# 别忘了调用main函数才能执行代码哦!
main()

这种方式遵循了Python的作用域规则,代码逻辑清晰,也不会引发全局变量带来的潜在问题。

方案二:使用全局变量(不推荐,仅作参考)

如果你一定要让price在函数外部也能访问,可以将其声明为全局变量,但这种方式会让变量的作用域变得模糊,容易引发意外的变量覆盖问题,所以尽量避免使用:

def equation(a, b):
    global price  # 声明price为全局变量
    price = (a + b) * 2
    return price

def main():
    equation(5, 10)
    print(price)  # 现在可以访问全局作用域的price了

main()

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:24:09