__setitem__和__getitem和__delitem__

class Foo:
def __init__(self, name):
self.name = name def __getitem__(self, item):
print('[]获取值的时候触发')
print('getitem执行', self.__dict__[item]) def __setitem__(self, key, value):
print('obj[key]=randy赋值时,执行我')
self.__dict__[key] = value def __delitem__(self, key):
print('del obj[key]时,delitem执行')
self.__dict__.pop(key) def __delattr__(self, item):
print('del obj[key]时,执行我')
self.__dict__.pop(item) f1 = Foo('sb')

一、__setitem__

  • 正括号赋值时触发
f1['age'] = 18
f1['age1'] = 19
setitem执行
setitem执行

二、__getitem__

  • 正括号取值时触发
f1['age']
getitem执行 18
f1['name'] = 'laowang'
setitem执行

三、__delitem__与__delattr__

  • delitem:中括号删除时触发
  • delattr:.删除时触发
del f1.age1
del f1['age']
del obj.key时,delattr执行
del obj[key]时,delitem执行
print(f1.__dict__)
{'name': 'laowang'}

四、总结

  1. __setitem__: 正括号赋值时触发
  2. __getitem__: 正括号取值时触发
  3. __delitem__:中括号删除时触发

\_\_setitem\_\_和\_\_getitem和\_\_delitem__的更多相关文章

  1. CLOSE-UP FORMALWEAR_意大利进口_2015秋冬_男装发布会_西装图片系列_男装西装设计资料_WeArTrends时尚资讯网_国内最专业的服装设计资讯网站

    CLOSE-UP FORMALWEAR_意大利进口_2015秋冬_男装发布会_西装图片系列_男装西装设计资料_WeArTrends时尚资讯网_国内最专业的服装设计资讯网站 CLOSE-UP FORMA ...

  2. ARM核心板_迅为imx6工控核心板_核心板中的小新潮

    ARM核心板_迅为imx6工控核心板_核心板中的小新潮核心板参数 尺寸 51mm*61mm CPU Freescale Cortex-A9 四核 i.MX6Q,主频 1.2 GHz 内存 2GB DD ...

  3. SSM整合_年轻人的第一个增删改查_基础环境搭建

    写在前面 SSM整合_年轻人的第一个增删改查_基础环境搭建 SSM整合_年轻人的第一个增删改查_查找 SSM整合_年轻人的第一个增删改查_新增 SSM整合_年轻人的第一个增删改查_修改 SSM整合_年 ...

  4. SSM整合_年轻人的第一个增删改查_查找

    写在前面 SSM整合_年轻人的第一个增删改查_基础环境搭建 SSM整合_年轻人的第一个增删改查_查找 SSM整合_年轻人的第一个增删改查_新增 SSM整合_年轻人的第一个增删改查_修改 SSM整合_年 ...

  5. SSM整合_年轻人的第一个增删改查_新增

    写在前面 SSM整合_年轻人的第一个增删改查_基础环境搭建 SSM整合_年轻人的第一个增删改查_查找 SSM整合_年轻人的第一个增删改查_新增 SSM整合_年轻人的第一个增删改查_修改 SSM整合_年 ...

  6. 随心测试_软测基础_001<说在开始_测试理念>

  7. 系统管理模块_岗位管理_改进_使用ModelDroven方案_套用美工写好的页面效果_添加功能与修改功能使用同一个页面

    改进_使用ModelDroven方案 @Controller @Scope("prototype") public class RoleAction extends ActionS ...

  8. 微信小程序_(校园视)开发视频的展示页_下

    微信小程序_(校园视) 开发用户注册登陆 传送门 微信小程序_(校园视) 开发上传视频业务 传送门 微信小程序_(校园视) 开发视频的展示页-上 传送门 微信小程序_(校园视) 开发视频的展示页-下 ...

  9. 微信小程序_(校园视)开发视频的展示页_上

    微信小程序_(校园视) 开发用户注册登陆 传送门 微信小程序_(校园视) 开发上传视频业务 传送门 微信小程序_(校园视) 开发视频的展示页-上 传送门 微信小程序_(校园视) 开发视频的展示页-下 ...

随机推荐

  1. .NET via C#笔记5——基元类型,引用类型和值类型

    5 基元类型,引用类型和值类型 5.3 值类型的装箱和拆箱 将值类型转化为引用类型需要进行装箱(boxing) 赋值,传参等操作,如果从值类型转为引用类型,都会进行装箱 装箱的代价比较大 申请一块堆内 ...

  2. springboot - 使用ErrorAttributes 在我们自定义的 ErrorController中

    1.概览 基于<springboot - 映射 /error 到自定义且实现了ErrorController的Controller>改造,仅将MyCustomErrorController ...

  3. # vim ~/.vimrc vim配色

    Ubuntu # vim ~/.vimrc        # /hom/zzx 下 set nomodeline                "(这个一定要写,目前有这个安全漏洞) set ...

  4. EF Core的安装及入门

    一.环境准备 1.开发环境:.NET Core 3.1 2.IDE工具:Visual Studio 2019 3.数据库:SQL Server 2012 二.EF Core的安装 1.新建一个项目,如 ...

  5. HDU_1059 多重背包问题

    F - Dividing Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit ...

  6. argv从控制台输入多个参数

    arg多个参数: #!/usr/bin/env python3 import sys #控制台要输入的两个参数格式为:python script_name.py 参数1 参数2 input_file= ...

  7. Oracle专题

    定时任务:JOB文件夹 监视执行过的SQL 语句 select * from v$sqlarea a where module='PL/SQL Developer' order by a.FIRST_ ...

  8. Codeforces 1291B - Array Sharpening

    题目大意: 一个数列是尖锐的 当且仅当存在一个位置k使得 a[1]<a[2]<a[3]<...<a[k] 且 a[k]>a[k+1]>a[k+2]>...&g ...

  9. 滴滴与Uber都盯上拉美市场!一场惨烈竞争谁能胜出?

    创业者最怕的是什么?或许并不是在创业初期的艰难历程.毕竟在初期虽然会遇到很多磨难和众多竞争对手,但只要敢打敢拼就有胜出的可能.创业者最怕的或许是成为所属行业独角兽后,要面对势均力敌对手的凶猛攻击!大家 ...

  10. ping内网服务器 新

    #!/bin/bash ip="192.168.1."lastip=(200201202210211212220221222) #ip列表 可以继续添加 ps () { ping ...