Python 私有属性和私有方法

1. Python私有属性

在Python中,私有属性是指以双下划线开头的属性,例如__temperature。私有属性是一种封装的概念,它表示这个属性只能在类的内部访问,对外部不可见。

私有属性的存在主要是为了保护类的数据,防止外部直接访问和修改。通过使用私有属性,我们可以控制数据的访问权限,提高程序的安全性和稳定性。

下面是一个示例代码:

class Temperature:

def __init__(self):

self.__temperature = 0

t = Temperature()

print(t.__temperature) # 会报错,无法直接访问私有属性

可以看到,当我们尝试直接访问私有属性__temperature时,会抛出AttributeError异常。

那么如何在类的内部访问私有属性呢?Python提供了一种特殊的语法,可以使用self.__属性名来访问私有属性,如下所示:

class Temperature:

def __init__(self):

self.__temperature = 0

def get_temperature(self):

return self.__temperature

t = Temperature()

print(t.get_temperature()) # 输出:0

通过定义一个公有方法get_temperature,我们可以在方法内部访问私有属性__temperature,然后通过调用这个公有方法来获取私有属性的值。

需要注意的是,虽然Python并没有严格意义上的私有属性,但是使用双下划线开头的属性会被解释器重命名,以避免命名冲突。具体来说,Python会将__属性名重命名为_类名__属性名

例如,上面的代码中的__temperature属性在解释器中被重命名为_Temperature__temperature。这样一来,就可以通过这个重命名后的属性名访问到私有属性,如下所示:

t = Temperature()

print(t._Temperature__temperature) # 输出:0

虽然可以通过这种方式访问私有属性,但是并不推荐这样做,因为这样会破坏封装的原则。

2. Python私有方法

后端开发标签