Python类的私有属性如何定义?Python类的私有属性的使用方法有哪些?

新手刚学习python的时候,容易弄混类属性和私有属性用法,因为它们的用法具有一定的特殊性质,为了让大家深入了解这两个方法的作用,下面这篇有关“Python 类的私有属性如何定义?Python 类的私有属性的使用方法有哪些?”可以好好看看哦!希望能给大家的学习带来一定的帮助 。

Python类的私有属性如何定义?Python类的私有属性的使用方法有哪些?

文章插图
1、私有属性的定义
私有属性的使用方法就是在属性的名称前面加上下划线_,表示这个属性是私有的,具体用法如下:
Class hh:Def method(self):Self._hhq=123456这里就是简单的创建了一个私有属性hhq 。
2、在python类的外面读取私有属性
在类的实例方法中,不允许读取类外的私有属性,这样就会报错,举个例子:
class Person:    def __init__(self, name):        self.__name = namexx = Person('xx')print(xx.__name)此次案例中,首先定义了一个Person类,然后创建了一个私有属性_name,在属性中创建一个实例hh,直接对实例name进行访问 。
程序运行输出如下:
Traceback (most recent call last):  File "attr-get.py", line 6, in <module>    print(tom.__name)AttributeError: 'Person' object has no attribute '__name'程序运行会报错:‘Person’ object has no attribute ‘__name’,表示无法找到属性 __name’ 。所以说在类 Person 的外部无法直接读取实例的私有属性 。
3、在python类外修改私有属性
class Person:    def __init__(self, name):        self.__name = name    def get_name(self):        return self.__namexx = Person('xx')xx.__name = 'wang'print(xx.get_name())一样的先定义了一个Person类,在第三行中创建了一个私有属性_name,在类的实例中使用get_name方法对私有属性_name进行访问,创建一个实例xx,将实例属性的值修改为“wang”并通过实例方法获取这个私有属性 。
运行结果:
xx运行结果发现我们明明修改了私有属性_name的值,可是这里输出表示的是并没有修改,这说明在类Person中我们无法直接修改实例的私有属性 。
4、使用set/get方法访问私有属性
class Person:    def __init__(self, name):        self.__name = name    def get_name(self):        return self.__name    def set_name(self, name):        self.__name = namexx= Person('xx')xx.set_name(wang')print(xx.get_name())以上代码中,我们使用set/get方法来进行访问私有属性,首先也是定义了一个Person类,在第三行中创建了一个私有属性_name,在类的实例中使用get_name方法对私有属性_name进行访问,使用set_name进行修改 。第十一行创建一个实例xx,通过实例方法get/set来读取和修改私有属性 。
输出结果:
wang从这个程序中可以看出来,通过set的方法成功的将私有属性_name的值改变了 。
【Python类的私有属性如何定义?Python类的私有属性的使用方法有哪些?】以上就是有关“Python 类的私有属性如何定义?Python 类的私有属性的使用方法有哪些?”的全部内容了 。

    推荐阅读