Discuss / Python / 有个问题想请教一下

有个问题想请教一下

Topic source
class Screen(object):    @property    def width(self):        return self.__width    @width.setter    def width(self, value):        self.__width = value    @property    def height(self):        return self.__height    @height.setter    def height(self, value):        self.__height = value    @property    def resolution(self):        self.__resolution = self.__height * self.__width        return self.__resolution# 测试:s = Screen()s.width = 1024s.height = 768print('resolution =', s.resolution)if s.resolution == 786432:    print('测试通过!')else:    print('测试失败!')print(dir(Screen))

我在最后print了Screen的dir,发现他的属性里有'height', 'resolution', 'width'这三项,也就是说通过@property和@func.setter把方法转换成了属性。不过在转换的过程中,有调用 .__width .__height 和.__resolution 这三项,为什么在dir里不会出现这三项呢?很疑惑,求解答


  • 1

Reply