变量命名错误。如何避免此类错误?

2 投票
2 回答
2446 浏览
提问于 2025-04-17 17:34

我之前一直在用一些编译型语言,这些语言没有动态类型,所以在使用Python时,我发现一个很让人头疼的问题,就是因为拼写错误而不小心引入了一个新的变量名。

几天前我就遇到了这样一个例子,代码大概是这样的:

received = False

while not received:
   ...
   ...
   ...
   recieved = (some_conditional_statments)
   ...
   ...

print some_results

在这里,received是一个布尔变量,应该在循环结束条件满足时被设置为真。但是因为拼写错误(拼成了rec*ie*ved),导致这个代码陷入了无限循环。

显然,编译器会立刻发现这样的错误。我想知道大家在Python中是用什么方法来避免这种错误的呢?

2 个回答

4

你可以使用 pychecker 来处理这类问题。

这里有一个关于 Python 代码检查工具的问题 ,你可以去看看。

8

使用一个不错的代码检查工具(linter),并通过自动化测试来测试你的代码(比如单元测试等)。大多数集成开发环境(IDE)和文本编辑器都可以设置成自动运行代码检查工具。

我推荐使用flake8;它结合了pep8风格检查器pyflakes代码检查工具的输出(这个工具可以发现上面提到的错误,它会告诉你recieved被赋值了但没有在其他地方使用),同时还会告诉你代码是否过于复杂(使用麦凯布圈复杂度指标)。

撰写回答