Discuss / Python / 实例属性按照规范必须在__init__方法里面声明初始化,否则pycharm里面会报警告

实例属性按照规范必须在__init__方法里面声明初始化,否则pycharm里面会报警告

Topic source
class Screen(object):
    def __init__(self):
        self._width = 0
        self._height = 0
        self._resolution = 0

    @staticmethod
    def checking_integer_param(name, value):
        if not isinstance(value, int):
            raise ValueError('%s must be an integer!' % name)

    @property
    def width(self):
        return self._width

    @width.setter
    def width(self, value):
        Screen.checking_integer_param('width', value)
        self._width = value

    @property
    def height(self):
        return self._height

    @height.setter
    def height(self, value):
        Screen.checking_integer_param('height', value)
        self._height = value

    @property
    def resolution(self):
        return self._width * self.height

你的@staticmethod好像没有用啊,我把int改成str也是显示测试成功,说明没经过静态方法来验证value


  • 1

Reply