如何在源代码中找到所有隐式转换到布尔值?这包括条件语句(如if x )、循环(如while x )、操作符(如x or y )等,但不包括if x == 0或if len(x) == 0等。我不介意使用静态分析器、IDE、正则表达式或为此目的设计的python库。当然,当x实际上是布尔值时,会出现一些假阳性;这很好。
用例:我发现了强制布尔的错误。例如,变量x被认为是整数或None,并在if not x暗示if x is None时被
我使用for循环并构造要读取的环境变量的名称(如abc%%i,其中i是循环变量),并使用延迟展开来打印它们的值(假设已经设置了这些环境变量)。echo is dos提供了提及要打印的变量的字段宽度的工具,如echo %x:~-8%将右对齐x的值,字段宽度将为8。
但由于我使用延迟扩展,!abc%%i:~-8!似