新手刚学习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 类的私有属性的使用方法有哪些?”的全部内容了 。
推荐阅读
- python如何输出汉字?python输出汉字的技巧
- Python如何打印分数形式?python输出分数形式的方法
- Pycharm工具中的debug是什么?python中debug的用法
- python中参数传递的方式有哪几种?python如何进行参数的传递?
- Python中的位运算符怎么使用?Python位运算符有哪些
- Python中有三元运算符吗?Python怎么实现三元运算符
- 情玫公寓网是不是真的啊?刚注册会员就有mm跟我送秋波!?
- python的随机数函数有哪些?python的随机数函数是什么?
- 捷达nf是什么意思?
- python的导入模块语句如何使用?python想要导入模块用什么语句?