python编码速度和最干净

时间:2009-02-08 03:14:05

标签: python

Python很干净,我可以快速编写简洁的应用程序。 但我注意到我在某个地方有一些小错误,我没有在编译时但在运行时发现错误。然后我需要再次更改并运行脚本。有没有办法让它破裂,让我修改并运行?

另外,我不喜欢python没有枚举。如果我要编写需要大量枚举和类型的代码,我应该用C ++做吗?感觉我可以在C ++中更快地完成它。

4 个答案:

答案 0 :(得分:9)

“我在编译时但未在运行时找到错误”

正确。对于所有未编译的解释语言都是如此。

“我需要再次更改并运行脚本”

也正确。对于所有未编译的解释语言都是如此。

“有没有办法让它破裂让我修改并运行?”

什么?

如果是运行时错误,脚本会中断,您可以修复它并再次运行。

如果这不是一个正确的错误,而是某种逻辑问题,那么程序就会完成,但是无法正常工作。任何语言都无法预测你希望的东西并为你打破。

或许你的意思是别的。

“...需要大量枚举的代码”

您需要提供需要大量枚举的代码示例。我多年来一直在编写Python,并且对枚举没用。实际上,我一直在编写C ++而不用于枚举。

您必须提供需要大量枚举的代码作为特定示例。也许在另一个问题上,“什么是Pythonic取代所有这些枚举。”

它通常是多态类定义,但没有例子,很难确定。

答案 1 :(得分:3)

使用解释型语言,您有很多自由。自由也不是免费的。虽然解释器不会折磨你点到每一个并且在它认为你的代码值得运行之前穿越每个T,但它也不会试图静态地分析你的代码以解决所有这些问题。所以你有几个选择。

1){Pyflakes,pychecker,pylint}将对您的代码进行静态分析。这主要解决了语法问题。

2)使用nosetests等进行测试驱动的开发将对您有所帮助。如果您进行的代码更改会破坏现有代码,那么测试将会失败并且您将了解它。这实际上比静态分析更好,并且可以更快。如果您先测试,那么您将在 test 运行时而不是程序运行时检查所有代码。

注意1& 2,如果你只有一个静态类型编译器,你会有点好处。即便如此,它也不会产生正确性的证据。

您的测试可能会错过应用程序实际运行所需的一些管道。如果发生这种情况,通常会通过编写更多测试来修复它。但是你仍然需要启动应用程序并敲击它以查看你应该编写哪些测试但没有。

答案 2 :(得分:3)

您可能希望查看nosey之类的内容,它会在您保存对文件的更改时定期运行您的单元测试。您还可以设置保存事件触发器,以便在保存文件时在后台运行单元测试(例如,可以使用Komodo Edit)。

那就是说,我所做的是绑定F7键以在当前目录和子目录中运行单元测试,并使用F6键在当前文件上运行pylint。经常使用这些可以让我很快发现错误。

答案 3 :(得分:2)

Python是一种解释型语言, 没有编译阶段,至少不是用户可见的。如果出现错误,请返回,修改脚本,然后重试。如果你的脚本执行时间很长,并且你不想停止重启,你可以尝试像pdb这样的调试器,使用它可以在运行时修复一些错误。

您可以通过多种方式实施枚举,快速谷歌搜索“python枚举”可以提供您可能需要的所有内容。但是,你应该研究一下你是否真的需要它们,以及是否有一种更好的,更加“pythonic”的方法来做同样的事情。