Discuss / Python / 研究了下大家不加下划线'_'就会报错的原因

研究了下大家不加下划线'_'就会报错的原因

Topic source

Confidendure

#1 Created at ... [Delete] [Delete and Lock User]

其实self._width中加下划线纯粹是为了区分def width:,要不然在实例中使用时会出现无限self.width调用的递归死循环。把代码改为如下形式照样能用:

class Screen(object):
    @property
    def width(self):
        return self.kuandu
    @width.setter
    def width(self,width):
        self.kuandu=width
        ...
所以加下划线的写法并不是必须的。

永乎5

#2 Created at ... [Delete] [Delete and Lock User]

应该还有限制对属性的直接访问功能,__width或者_width, 如果不这样的话,等到时候用s.width=1024f=访问可能就会让机器混淆,不知道是以直接访问还是以@property的方式访问的


  • 1

Reply