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

运行Python代码出现‘name 'one' is not defined’错误的根源及原因

错误根源与修正方案

核心问题:变量作用域混乱

你遇到的name 'one' is not defined错误,根源是变量的作用域不匹配,具体有三个关键点:

  • 最后一行调用Two(one)时,这里的one是全局作用域的变量,但你从未在全局定义过它,直接使用就会报错。
  • 函数One()内部的one是局部变量,只在One()函数执行期间有效,出了这个函数就会被销毁,外部(包括Two())根本访问不到它。
  • Two()的参数one是该函数的局部变量,和One()里的one、全局的one完全是三个独立的变量,就算你在Two()里调用了One(),也不会给这个参数赋值。

修正代码示例

要实现你想要的逻辑(让Two()打印One()输入的内容),最简单的方式是让One()返回输入的值,然后在调用Two()时传递这个返回值:

def One():
    # 让函数返回输入的内容
    return input("Type something: ")

def Two(one):
    print(one)

# 先调用One()获取返回值,再传给Two()
user_input = One()
Two(user_input)

或者如果一定要在Two()内部调用One(),可以直接接收返回值:

def One():
    return input("Type something: ")

def Two():
    # 直接接收One()的返回值并打印
    one = One()
    print(one)

Two()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:56:09