Python类--如何访问通过类方法中的对象添加的双下划线属性

-1 投票
1 回答
20 浏览
提问于 2025-04-12 08:16

在下面的程序中,能否在 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 属性”来学习怎么做。

撰写回答