在下面的程序中是否可以在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)方法中访问__braedth,但这是不可能的。
你不应该写
b.__breadth = 5
。双下划线的目的是该变量是类的私有变量,永远不应该从外部访问。如果您需要从外部修改 __breadth
,您应该在类内部有一个 set_breadth
方法。
class Rectangle:
...
def set_breadth(value):
self.__breadth = value
b.set_breadth(5)
或者,创建一个
breadth
属性。谷歌“Python Properties”来了解如何做到这一点。