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

 手机用户2502910213 发布于 2022-12-31 18:39

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

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

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

我总是可以在检查的"假"的存在locals()globals()其他方式达到相同的效果或过多.虽然这可能与传统软件开发无关,但有时在数据分析管道等中会出现类似于他的错误.

1 个回答
  • 对于它的价值,pylint会检测到这一点,以及任何内置的重新定义:

    dan@dantop:~$ pylint h.py
    
    No config file found, using default configuration
    ************* Module h
    W:  1,0: Redefining built-in 'False'
    

    h.py:

    False = True
    

    2022-12-31 18:40 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有