疑问,为啥只能设置为私有变量
Topic source其实不是私有的问题,是因为变量和方法重名了
比如在width()方法里 变量名还用 width的话 self.width就会调用width()方法自身
所以不一定非要写成_width或者__width
换一个名字比如 new_width 也是可以的
我也是初学者,说错了见谅= =
这里你可以不设置私有变量,但是调用的方式要改一下,假如这里返回self.变量,就和你本身在外面调用它是一样,就会造成死循环,你创建一个实例,这个实例会有一个属性字典,你可以通过调用这个属性字典比如,self.__dict__[你输入的值] 这里就会返回你要的值了
- 1
阿非利加丶
class Screen(object):
@property
def width(self):
return self.__width
@width.setter
def width(self, width):
self.__width = width
@property
def height(self):
return self.__height
@height.setter
def height(self, height):
self.__height = height
@property
def resolution(self):
return self.__width * self.__height