Python类--如何访问通过类方法中的对象添加的双下划线属性
在下面的程序中,能否在 area(self) 方法里访问 __breadth 属性呢?
class Rectangle:
def __init__(self, L):
self.__length = L
def area(self):
return self.__length * self.__breadth
b = Rectangle(10)
b.__breadth = 5
print(b.__dict__)
print(b.area())
我尝试在 area(self) 方法中访问 __breadth,但发现不行。
1 个回答
0
你不应该直接写 b.__breadth = 5
。双下划线的意思是这个变量是类内部的私有变量,外部不应该直接访问。如果你需要在外部修改 __breadth
,应该在类里面写一个 set_breadth
方法。
class Rectangle:
...
def set_breadth(value):
self.__breadth = value
b.set_breadth(5)
另外,你可以创建一个 breadth
属性。可以去谷歌搜索“Python 属性”来学习怎么做。