Python - 让实例属性不可变(只读)

2022/2/6 1:14:11

本文主要是介绍Python - 让实例属性不可变(只读),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

>>> class A:
...     def __init__(self,name):
...             self.__name = name
...
>>> a = A('xiaoming')
>>> a.name   # 私有化,外部不能直接访问
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'A' object has no attribute 'name'
>>> a.name = 'wangfu'     # 为实例a 增加了一个新的公开name属性
>>> a.name
'wangfu'
>>> a.__dict__
{'_A__name': 'xiaoming', 'name': 'wangfu'}
>>> class B:
...     def __init__(self,name):
...             self.__name = name
...     @property  
...     def name(self):
...             return self.__name
...
>>> b = B('张三')
>>> b.name
'张三'
>>> b.name = '李四'    # 因为有同名的被@property 修饰的函数, 所以b.name= 为修改值的操作
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: can't set attribute
>>> b.age = 18   
>>> b.age
18


这篇关于Python - 让实例属性不可变(只读)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程