为什么Python代码里出现noqa
这段时间在看一个开源的flask项目,这个项目主要实现一个论坛的功能,其代码写得比较好,设计上也足够符合工程的特色,所以就深入地研究了一下,在研究的过程中,经常会碰到noqa的注释,如下图所示:
上图可以看到很多行导入的代码后面都有 # noqa 的注释,如果刚刚看到这种代码,会不明白它的意思的。因为我不是使用复杂的开发工具,而是使用IDLE,或者普通的开发工具。
后来经过使用复杂的开发工具pycharm,就会发现这样一个问题,经常写的代码会提示一段波浪线,然后点击一下就会提示那里有问题。有一些是有比较明显的格式问题,只要按照提示就可以解决了。但是有一些代码,它提示的信息就是错误的,为什么这样说呢?像上面这样的代码,如果开发工具提示出错,肯定是错误的提示。因为从模块里导入这些类,并不需要编写代码来使用它们,也就是说它不会在代码里明确地使用它们。但是会在模块对象里自动化地使用,如果不导入,自动化功能的代码就找不到它们。所以这里就存在一个两难的问题,编写这行代码导入是为了自动化代码,但开发工具提示并没有使用;如果不导入,自动化代码不能使用。 因此解决这个问题,就是屏蔽掉开发工具的提示,通什么样的方式来去掉提示呢?其实就是通过这一行代码后面写上 # noqa ,这样开发工具就不会提示这行代码的警告信息了。因为这样标记之后,说明这行代码是由开发人员来负责检查,开发工具的QA检查就不必要做了。
最后总结一下,其实 # noqa就是去掉一些不合理的提示功能。
还没有评论,来说两句吧...