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

问题描述 投票:0回答:1

在下面的程序中是否可以在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,但这是不可能的。

python class
1个回答
0
投票

你不应该写

b.__breadth = 5
。双下划线的目的是该变量是类的私有变量,永远不应该从外部访问。如果您需要从外部修改
__breadth
,您应该在类内部有一个
set_breadth
方法。

class Rectangle:
    ...
    def set_breadth(value):
        self.__breadth = value

b.set_breadth(5)

或者,创建一个

breadth
属性。谷歌“Python Properties”来了解如何做到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.