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

在Python二叉搜索树中存储键值对遇NameError问题求助

错误原因与解决方法

问题根源

你执行tree = BSTNode(john.username, john)时抛出NameError,核心原因是**john这个变量从未被定义过**——Python解释器找不到名为john的用户对象,自然无法访问它的username属性或把它作为参数传入。

解决步骤

  1. 先创建并初始化john用户对象
    假设你有一个User类(如果没有需要先定义),先实例化出john:
    # 先定义User类(如果还没定义的话)
    class User:
        def __init__(self, username):
            self.username = username
    
    # 实例化john用户对象
    john = User("john_smith")
    
  2. 再使用已定义的john创建BST节点
    tree = BSTNode(john.username, john)
    

关键提醒

Python是静态作用域语言,所有变量必须先定义、后使用。不管你的User类结构如何,只要确保在调用BSTNode构造函数前,john已经被正确赋值为一个用户对象,就能解决这个错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 04:30:57