首页 > 编程语言 >python self.__dict__.update 批量更新属性的使用

python self.__dict__.update 批量更新属性的使用

时间:2022-10-20 19:37:31浏览次数:51  
标签:__ .__ python self update num dict total

首先我们回顾下字典的update方法,以及查看对象属性__dict__的使用;然后再看对象.__dict__update的使用

 一、字典的update方法

1.描述dict.update()

update() 函数把字典 dict2 的键/值对更新到 dict 里

2.语法

dict.update(dict2)

3.返回值

该方法没有任何返回值

4.栗子

tinydict = {'Name': 'Zara', 'Age': 7}
tinydict2 = {'Sex': 'female' }

tinydict.update(tinydict2)
print ("Value : %s" %  tinydict) # Value : {'Age': 7, 'Name': 'Zara', 'Sex': 'female'}

 

二、.__dict__ 查看对象的属性

方法: obj.__dict__

class TestClass:
    """My class"""

    def __init__(self, num: int, total: int):
        """init"""
        self.num = num
        self.total = total

if __name__ == '__main__':
    test = TestClass(num=3, total=10)
    print(test.__dict__)  # {'num': 3, 'total': 10}

 

二、obj.__dict__.update()

由上面的分段知识点,可以知道update()是对前面的字典进行批量更新内容的

outer_dict = {"owner_name": "zhangsan"}

class TestClass:
    """My class"""

    inner_dict = {"addr": "SH"}

    def __init__(self, num: int, total: int):
        """init"""
        self.num = num
        self.total = total

if __name__ == '__main__':
    test = TestClass(num=3, total=10)
    print("print1:", test.__dict__)  # {'num': 3, 'total': 10}
    test.__dict__.update(outer_dict)
    print("print2:", test.__dict__)
    test.__dict__.update(test.inner_dict)
    print("print3:", test.__dict__)
"""
result:
print1: {'num': 3, 'total': 10}
print2: {'num': 3, 'total': 10, 'owner_name': 'zhangsan'}
print3: {'num': 3, 'total': 10, 'owner_name': 'zhangsan', 'addr': 'SH'}
"""

 

标签:__,.__,python,self,update,num,dict,total
From: https://www.cnblogs.com/ananmy/p/16810981.html

相关文章

  • Python第七章实验报告
    一、实验题目Python第七章实例和实战作业二、实验目的和要求1.熟悉Pycharm的运行环境2.学习并掌握Python的面向对象程序设计三、主要仪器设备联想小新air15硬件:AMD......
  • .Net 线程
    一个应用程序中,必须有一个进程,一个进程可同时多个线程协作处理。同步:单线程,每一步都执行结束并返回结果,下一步处于等待,阻塞程序流异步:多线程,不需要等待执行结束,可继续执......
  • 【Python】第3章-15 统计一行文本的单词个数
    本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。输入格式:输入给出一行字符。输出格式:......
  • 【Python】第3章-14 字符串字母大小写转换
    本题要求编写程序,对一个以“#”结束的字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出。输入格式:输入为一个以“#”结束的字符串(不......
  • .Net Api + Vue前后端分离项目中的jwt令牌应用
    1.Startup里面配置JWT认证方案//认证方案services.AddAuthentication(option=>{option.DefaultAuthentic......
  • 社论 22.10.20 高斯整数环
    高斯环上的二维数点所以来水社论了(给定\(r\)。这给出了圆\(C:x^2+y^2=r^2\)。求在\(C\)圆周上的整点个数。\(r\leq10^{14}\)。数论题。记\(N=r^2\)。于是我......
  • python内置模块之os sys 与json
    os模块os模块主要与代码运行所在的操作系统打交道importos1,创建目录(文件夹)os.mkdir(r'd1')#相对路径在执行文件所在的路径下创建目录可以创建单级目录os.mk......
  • set集合的union()函数 跟 typing.Union
     一、set的union()方法1.描述union()方法返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次  2.语法set.union(set1,set2...)set1--必......
  • [Typescript] 59. Medium - InorderTraversal
    Implementthetypeversionofbinarytreeinordertraversal.Forexample:consttree1={val:1,left:null,right:{val:2,left:{val:......
  • 【Python基础学习】第六节 time模块 & datetime模块详解
    Python基础学习之时间模块time模块datetime模块Python中,关于时间的模块,常用为:time&datetime两个模块;时间相关的模块虽然内容挺多,但是并不需要死记硬背,只要留个印象就......