Python中的私有属性

Python020

Python中的私有属性,第1张

Python中一个类主要由静态特征和动态特征构成。

静态特征的标准称呼为:字段(实例、类)

动态特征的标准称呼为:方法(实例方法、类方法、静态方法)

对于某些字段,如果在其它类中可以对其直接访问和修改,会对其程序带来很大的隐患。为了保护某些字段不能随便更改,我们将其设置为私有字段,只有在类中才可以访问。

定义私有字段时,在变量名前加上两个下划线 __变量名 。

为了读取私有字段我们可以定义字段同名方法,并添加装饰器 @property ,这样在外部类中可以像类的普通字段一样读取。

为了修改私有字段我们可以定义字段的同名方法,传入参数为待修改的值。装饰器为 @方法名.setter

私有属性是不能继承的,只能在类的内部调用。子类是无法调用父类的私有属性的。·

在Python中,通过在属性名称前面添加两个下划线(__)来声明该属性为私有属性。例如:

class MyClass:

def __init__(self):

self.__private_attribute = 0

def set_private_attribute(self, value):

self.__private_attribute = value

def get_private_attribute(self):

return self.__private_attribute

-----------------------------------end----------------------------------

在这个例子中,__private_attribute 属性是私有属性,无法在类外部直接访问。你只能通过 set_private_attribute 和 get_private_attribute 方法来访问它。

在Python中,私有属性不能直接访问,但是它们可以被访问。如果你真的想要阻止类外部的访问,可以将属性名称改为一个不常用的名称,比如以一个下划线开头(例如,_private_attribute)。这样做会提醒其他程序员这个属性是私有的,但是并不会阻止类外部的访问。

还有其他问题吗?