首页 > 编程语言 >Python类的私有化属性名字重整

Python类的私有化属性名字重整

时间:2022-08-23 23:12:38浏览次数:79  
标签:__ .__ name Python 私有化 重整 Test test 属性

python 类在__init__方法中初始化属性的时候,如果以(self.__name)的双下划线形式开头则代表这个属性为类的私有化属性,那么,我们在实例化之后想要通过该名称直接获取该属性是获取不到的,通过调用实例化类对象的__dict__方法可以看到,他把这个双下划线的属性名称给修改了,变成了(_类名__属性名)的这种形式,那我们后续的操作如果想修改和访问该属性就得通过重整后的名称来修改该属性,否则直接通过该属性名去修改,并不是真的修改了该属性,而是新增了一个属性,如下边的例子所示!

>>> class Test:
...     def __init__(self, name):
...         self.__name = name
... 
>>> test = Test('test_name')
>>> test.__name
Traceback (most recent call last):
  File "<console>", line 1, in <module>
AttributeError: 'Test' object has no attribute '__name'
>>> test.__dict__
{'_Test__name': 'test_name'}
>>> test._Test__name
'test_name'
>>> test.__name = "new test name"
>>> test.__dict__
{'_Test__name': 'test_name', '__name': 'new test name'}

 

标签:__,.__,name,Python,私有化,重整,Test,test,属性
From: https://www.cnblogs.com/xingfuggz/p/16618218.html

相关文章

  • python 猜数字游戏
    游戏规则:游戏者先在内心随意想一个正整数,并记住。然后启动游戏,根据提示输入,直到最后显示出游戏者心中所想的数字不同的游戏次数则有不同的评语importtimeimportrandom......
  • Python小游戏——外星人入侵(保姆级教程)第一章 07调整飞船速度 08限制飞船活动范围
    系列文章目录第一章:武装飞船07调整飞船速度08限制飞船活动范围一、代码及演示1.修改settings修改文件:settings.py点击查看代码#渗透小红帽python的学习之路#外......
  • 学习python-Day45
    今日学习内容一、表单标签补充知识name相当于字典的键,value相当于字典值。对于前端到后端传数据需要用到name属性,不然无法被后端识别该数据是什么。form表单在朝......
  • Python3项目初始化9-->用户登录和用户管理和密码加密
    26、用户登录页面修改使用用户登录现成的模板。鼠标右键查看页面原代码,直接复制粘贴:https://v3.bootcss.com/examples/signin/调整login.html代码,{%loadstatic%}<!docty......
  • python序列-元组
    元组-tuple元组(tuple)也是python中一个重要的序列结构,与列表类似,也是由一系列按特定顺序排列的元素组成,但是它是不可变序列。因此元组也称为不可变的列表。形式上元组......
  • Python if __name__ == '__main__':
    每个python模块(python文件,也就是此处的test.py和import_test.py)都包含内置的变量__name__,当该模块被直接执行的时候,__name__等于文件名(包含后缀.py);如果该模块impor......
  • 《Python神经网络编程》PDF高清版下载,
                               《 Python神经网络编程》PDF高清版免费下载地址   内容简介  · · · · ......
  • opencv-python常用函数
    一、安装pipinstallopencv-python二、图像读写cv2.imread(path,flag)返回值类型:np.ndarraycv2.imwrite(filename,image)三、常用绘图cv2.rectangle(image,......
  • Python 中 Iterator和Iterable的区别
    Python中list,truple,str,dict这些都可以被迭代,但他们并不是迭代器。为什么?因为和迭代器相比有一个很大的不同,list/truple/map/dict这些数据的大小是确定的,也就是说有多少......
  • Python3项目初始化8-->css和bootstrap入门学习
    24、CSS基础HTML盒模型divspanCSS选择器,常见属性值Bootstrap栅格系统,表单,表格,常用组件。Div一个盒子,默认站一行Span行内元素P段落元素为什么需要div?t......