【问题标题】:How can I check compilation errors in python?如何检查python中的编译错误?
【发布时间】:2010-01-22 13:48:44
【问题描述】:
#!/usr/bin/python  
str = "this"  
if(1):  
  print "Hi"  
else:  
  print str.any_random_function()  

当我运行程序时,这不会失败。我尝试了 py_compile 但这也没有表明 else 循环中的错误。现在如何编译程序并在 python 代码中可靠地检测错误?

【问题讨论】:

  • 我认为在 python 中不可能做到这一点。可以动态添加方法、捕获异常或重载 getattr 方法。在任何这些情况下,您的错误将完全取决于运行时信息。
  • 其实这个特殊的例子应该被pylint捕捉到了。
  • 它不会失败,因为它没有错。您的模块可以在为内置字符串类正确定义 any_random_function 的上下文中导入。

标签: python compilation


【解决方案1】:

我认为你最好的选择是pylint。

【讨论】:

    【解决方案2】:

    Python 是一种动态语言,因此您不能像静态语言 (C/C++/Java) 那样简单地检查编译错误。如果您分配str.any_random_function,则上面的代码将是正确的(好吧,这是一个不好的例子......)。

    我建议你使用PyDev for Eclipse,它会自动发现代码中的许多常见问题,例如缺少函数/模块等。它还支持pylint(可选)。

    【讨论】:

    • 随机密钥库很容易将字符添加到函数调用中。那么是否建议在整个代码库中运行 pylint 或进行单元测试和 100% 的代码覆盖率来捕获错误的函数调用?感谢您的回复。
    • 习惯 pylint 需要一些时间,如果配置不正确,它可能会产生很多(无用的)消息。无论如何,作为一名优秀的软件工程师,您应该始终使用单元测试来实现 100% 的代码覆盖率。优点是它们可以(半)自动运行 - pylint 消息必须由人类解释。
    猜你喜欢
    • 2014-03-25
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 2011-06-15
    • 1970-01-01
    • 2012-07-06
    相关资源
    最近更新 更多