class Foo:
def __init__(self, name):
self.name = name def __getitem__(self, item):
print('getitem执行', self.__dict__[item]) def __setitem__(self, key, value):
print('setitem执行')
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时,delattr执行')
self.__dict__.pop(item) f1 = Foo('sb')

一、__setitem__

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

二、__getitem__

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

三、__delitem__与__delattr__

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

__setitem__,__getitem,__delitem__的更多相关文章

  1. python基础----__setitem__,__getitem,__delitem__

    class Foo: def __init__(self,name): self.name=name def __getitem__(self, item): print(self.__dict__[ ...

  2. __setitem__,__getitem,__delitem__的作用

    class Foo: def __init__(self, name): self.name = name def __getitem__(self, item): print('obj[key]时, ...

  3. 9.4、__del__、__doc__、__dict__、__module__、__getitem__、__setitem__、__delitem__、__str__、__repr__、__call__

    相关内容: __del__.__doc__.__dict__.__module__.__getitem__.__setitem__.__delitem__.__str__.__repr__.__cal ...

  4. __getitem__()、__setitem__()与__delitem__()

    # 如果想要运用[]取值,可以实现__getitem__() # 想要运用[]设值,可以实现__setitem__() # 若想通过del与[]来删除,可以实现__delitem__() class ...

  5. __setitem__() __getitem__() __delitem__()

    #item系列 和对象使用[]访问值有联系 #obj={'k':'v'} #print(obj) #print(obj['k']) class B: def __getitem__(self, ite ...

  6. 面向对象:__getitem__、__setitem__、__delitem__

    item系列 class Person(object): def __init__(self, name): self.name = name def __getitem__(self, item): ...

  7. python基础-面向对象进阶

    一.什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被 ...

  8. Python全栈开发【面向对象进阶】

    Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...

  9. Python之路【第六篇】python基础 之面向对象进阶

    一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象  和  issubclass(su ...

随机推荐

  1. Java,获取文件的Base64字符串,解码Base64字符串还原文件

    在jdk1.8以前,获取文件Base64字符串需要用到第三方库,从1.8开始,Java中引入了Base64相关的类 以下是代码示例 获取文件的Base64编码字符串 import java.io.Fi ...

  2. UVA 10951 - Polynomial GCD(数论)

    UVA 10951 - Polynomial GCD 题目链接 题意:给定两个多项式,求多项式的gcd,要求首项次数为1,多项式中的运算都%n,而且n为素数. 思路:和gcd基本一样,仅仅只是传入的是 ...

  3. Memcached中的存取命令详解

    本文和大家分享的主要是Memcached中常用的一些存取命令相关用法,一起来看看吧,希望对大家学习Memcached有所帮互助. 存储命令 set:不管key存在与否,强制进行set操作: add:必 ...

  4. appium(2)-Setting up Appium

    Setting up Appium Running Appium on Windows Additional Setup for Android App Testing Download latest ...

  5. ZOJ - 3932 Handshakes 【水】

    题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3932 题意 给出 N 个人,然后 1-N 然后 从 1 - N ...

  6. spring事件广播

    可参考:http://www.cnblogs.com/atyou/archive/2013/01/07/2850106.html 其中的类图更是精彩,现截至如下:

  7. iap 应用内购买相关的解释

    应用范围app Store Review Guidelines : https://developer.apple.com/app-store/review/guidelines/  中 11.12  ...

  8. scroll或是其子类被添加进view时,界面自动上移

    开发中经常会遇到ViewController添加scroll或是其子类被添加进controller.view时,scroll会自动下移大概64像素 解决: self.edgesForExtendedL ...

  9. 从数据的角度带你深入了解IPFS

    IPFS 和区块链有着非常紧密的联系, 随着区块链的不断发展,对数据的存储需求也越来越高.本文从IPFS 的底层设计出发, 结合源代码, 分析了IPFS 的一些技术细节. 一.概述 IPFS 和区块链 ...

  10. git 合并子分支

    1.子分支 $ git status 位于分支 base 无文件要提交,干净的工作区 2.子分支更新 $ git pull origin base 来自 http://106.14.59.204/ji ...