检测内置重定义(False=True)

2024-04-20 09:30:11 发布

您现在位置:Python中文网/ 问答频道 /正文

在代码复查期间,我偶然发现了一个有趣的问题。由于Python中的所有内容都是动态的,因此可以执行以下操作:

False = True
if False:
    print "Yes please!"

它的行为正确并打印出Yes please!。在理解这种行为背后的原理的同时,是否有自动代码检查器可以检测到这种行为?在

我总是可以检查locals()globals()中是否存在“False”或其他许多方法,以获得相同的效果。虽然这可能与传统软件开发无关,但在数据分析管道等中有时会出现类似于his的错误


Tags: 方法代码falsetrue内容if动态传统
2条回答

不管怎样,pylint确实检测到了这一点,同时还重新定义了任何内置的:

dan@dantop:~$ pylint h.py

No config file found, using default configuration
************* Module h
W:  1,0: Redefining built-in 'False'

h.py:

^{pr2}$

您可以使用Pylint检查此类分配。它会显示警告。在

W:  1, 0: Redefining built-in 'False' (redefined-builtin)

相关问题 更多 >