附录C:错误代码
本附录汇总常见错误和警告,方便快速诊断问题。
功能说明:常见编译错误及解决方案。
| 错误代码 | 说明 | 解决方案 |
|---|---|---|
E0001 | 语法错误 | 检查代码语法 |
E0002 | 解析错误 | 检查缩进/括号 |
E0003 | 类型错误 | 检查类型声明 |
E0006 | 未找到成员 | 检查属性名 |
E0007 | 不兼容类型 | 类型转换检查 |
常见错误示例:
# E0001: 缩进错误def foo(): print("bad indent") # 注意缩进一致性
# E0003: 类型错误cdef int x = "hello" # str不能赋给int功能说明:常见运行时错误及处理。
| 错误 | 说明 | 解决方案 |
|---|---|---|
MemoryError | 内存分配失败 | 检查内存使用,释放资源 |
IndexError | 索引越界 | 检查数组边界 |
TypeError | 类型不匹配 | 检查参数类型 |
ValueError | 值无效 | 检查输入值范围 |
示例:
# IndexError示例cdef int safe_get(double[:] arr, int index): if index < 0 or index >= len(arr): raise IndexError("out of bounds") return arr[index]功能说明:常见警告及建议。
| 警告 | 说明 | 建议 |
|---|---|---|
W0001 | 类型不匹配 | 添加显式类型声明 |
W0002 | 未使用变量 | 删除或使用变量 |
W0003 | 隐式类型转换 | 显式转换或声明类型 |
W0004 | 弃用特性 | 迁移到新API |
消除警告示例:
# W0001: 添加类型声明消除警告cdef int x = 10 # 显式声明y = x + 1 # y类型从x推断功能说明:错误诊断方法。
- 使用cython -a:生成annotate HTML分析代码
- 查看生成的C代码:定位具体问题
- 简化问题代码:创建最小复现用例
- 检查类型声明:确保类型匹配