2016-10-12 44 views
-1

是否有语法检查器能够基于边缘案例检测到损坏的代码。举例:测试边缘案例的Python语法检查器

def run(): 
    for j in [0, 1]: 
     if j == 0: 
      yield j 
     else: 
      yield None 


for i in run(): 
    print i * 2 

此代码已损坏,因为None * 2没有意义。有没有工具来检测这种错误?

谢谢

+0

'NameError:j is not defined'或什么时候你运行它。 –

+1

'第10行:TypeError:不支持的操作数类型*:'NoneType'和'int'' – Chris

+2

这不是一个语法错误;这是一个运行时语义错误。 – Prune

回答

3

您正在寻找一个类型检查器,而不是语法检查器。下面是一个尝试:http://mypy-lang.org/