为什么pylint不警告我使用不存在的类成员?

2024-10-04 11:24:25 发布

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

我从C++背景中来到Python,我喜欢使用pyLyt这样的工具来捕捉编译器通常会捕捉到的明显错误。但是,我们认为pylint代码是可以的:

#!/usr/bin/env python
"""Test module"""

class MyException(Exception):
    """A custom exception"""
    def __init__(self, error_code, message):
        self.error_code = error_code
        super(MyException, self).__init__(message)

try:
    raise MyException(123, 'One Two Three')
except MyException as err:
    print err.errCode
    print err.message

问题是,当然,那“印刷品错误代码“导致运行时错误。在

这仅仅是pylint检查中的一个疏忽,还是python的某些特性使得引用看似不存在的错误代码变得有效?在

显然,您可以捕获包含该字段的MyException的子类,但是如果您在一个具有显式MyException对象的范围中,我认为您不会希望引用子类中可能存在的内容。这当然不是一个错误(我可以想到很多情况下,您可能希望根据函数参数的功能采取不同的操作),但它似乎确实值得警告。在


Tags: 工具selfmessageinit错误codeerror子类