Python 中函数返回值必须显式赋值才能在调用处使用

12次阅读

Python 中函数返回值必须显式赋值才能在调用处使用

当调用一个函数并期望使用其返回值时,必须将该返回值显式赋给变量;仅调用函数(如 convert(time))不会自动将返回值绑定到同名变量或使其在作用域中可用。

在你的代码中,convert(time) 确实正确计算并返回了浮点数(例如 “7:30” 返回 7.5),但你并未将这个返回值保存下来——而是直接执行了 print(conversion),而此时局部变量 conversion 在 main() 函数内部根本未被定义,因此触发 NameError: name ‘conversion’ is not defined。

✅ 正确做法是:用变量接收返回值,再使用它:

def main():     time = input("What time is it? ")     conversion = convert(time)  # ← 关键:赋值接收返回值     print(conversion)           # ← 此时 conversion 已定义且持有结果

⚠️ 注意事项:

  • conversion 是 convert() 函数内部的局部变量作用域仅限于该函数内;它不会“泄漏”到 main() 中。
  • 函数调用本身(如 convert(time))是一个表达式,其求值结果就是返回值,但若不赋值、不传参、不参与运算,该结果会被立即丢弃。
  • 你已经熟练运用了这一机制:time = input(…) 就是把 input() 的返回值赋给 time——对 convert() 同理即可。

? 小技巧:你可以一步完成调用与打印,无需中间变量(适用于简单场景):

立即学习Python免费学习笔记(深入)”;

print(convert(time))  # 直接打印函数返回值

但推荐显式赋值(如 conversion = convert(time)),既增强可读性,也便于后续调试、校验或复用该值。这是 python 函数式编程的基本实践,也是避免作用域误解的关键习惯。

text=ZqhQzanResources