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

导入heapsort模块后出现NameError:DSAHeapEntry未定义,如何解决?

解决NameError: name 'DSAHeapEntry' is not defined问题

问题根源是你测试代码里的名称引用方式错误:DSAHeapEntry类定义在heapsort模块中,直接在测试代码里使用这个类名,Python无法识别该全局名称,因此抛出错误。

以下两种方案可快速修复:

方案一:直接导入目标类和函数

将测试代码开头的导入语句修改为:

from heapsort import DSAHeapEntry, heapSort

修改后后续代码可直接使用DSAHeapEntry和heapSort名称,无需添加模块前缀。

方案二:通过模块前缀调用类和函数

若不想修改导入语句,可在测试代码的类和函数调用前添加模块前缀:

import heapsort

# 创建DSAHeapEntry对象数组并赋值
arr = [heapsort.DSAHeapEntry(5), heapsort.DSAHeapEntry(3), heapsort.DSAHeapEntry(8), heapsort.DSAHeapEntry(1), heapsort.DSAHeapEntry(2)]

# 使用堆排序对数组排序
heapsort.heapSort(arr)

# 打印排序后的数组
for entry in arr:
    print(entry.value)

额外注意事项

确保测试代码与heapsort.py文件处于同一文件夹,或heapsort.py所在目录已加入Python的搜索路径,否则会先触发ImportError错误。

内容的提问来源于stack exchange,提问作者Rasal.A

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 00:10:23