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

Python如何在函数外部访问函数内部创建的指定变量

问题原因

你直接在函数外部打印qp_total会报错,是因为函数内部定义的变量属于局部作用域,默认只能在函数内部访问,外部无法直接调用。另外你当前代码还有一个隐藏问题:input()返回的是字符串类型,直接做除法运算会抛出类型错误,需要先转换为数值类型。

实现方法

你已经在函数末尾用return返回了三个变量组成的元组,只需要在调用函数时接收返回值即可按需取单个变量,有两种常用写法:

  • 按返回顺序赋值给对应变量
# 先把weight转成浮点数
weight = float(input('Enter Amount: '))

def quantity():
  p_total = weight / 454
  print(f'Amount: {p_total}')
  
  hp_total = weight / 227
  print(f'Amount HP: {hp_total}')
  
  qp_total = weight / 114
  print(f'Amount QP: {qp_total}')

  return p_total, hp_total, qp_total

# 调用函数,按顺序接收三个返回值
p_total, hp_total, qp_total = quantity()
# 之后就可以直接调用任意变量
print(qp_total)
print(p_total)
  • 若仅需要某一个返回值,可以用下划线占位忽略不需要的内容,比如只要qp_total:
# 前两个返回值用_占位,表示不需要接收
_, _, qp_total = quantity()
print(qp_total)

如果想不依赖返回顺序、更灵活地取值,也可以选择返回字典:

def quantity():
  p_total = weight / 454
  print(f'Amount: {p_total}')
  
  hp_total = weight / 227
  print(f'Amount HP: {hp_total}')
  
  qp_total = weight / 114
  print(f'Amount QP: {qp_total}')
  # 返回字典,key对应变量名,value对应计算值
  return {
    "p_total": p_total,
    "hp_total": hp_total,
    "qp_total": qp_total
  }

res = quantity()
# 按需取对应key的值即可,不需要记忆返回顺序
print(res["qp_total"])
print(res["p_total"])

场景适用性说明

这种场景非常适合用函数:你把重量转换的逻辑封装在一起,后续如果需要修改转换系数、或者新增转换规则,只需要修改quantity函数内部的代码即可,不需要改动外部调用的部分,符合代码封装复用的原则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:15:05