#使用双下item方法来实现属性的增删改查:
# 查:__getitem__ 增改:__setitem__ 删除: __delitem__
class Goods:
def __init__(self,name):
self.name = name #{'name':'apple'},self.__dict__[key] = value,
# self.__dict__['name'] = 'apple'
def __getitem__(self,key):
#if hasattr(self,key):如果self里面有key才返回。
# return self.__dict__[key]
return self.__dict__[key]
def __setitem__(self,key,value):
self.__dict__[key] = value #相当于dic[key]=value,实现字典的增改。
def __delitem__(self,key):
del self.__dict__[key] g = Goods('apple') #g是对象也是字典。
print(g['name']) #apple,g['name']启动__getitem__方法。查看属性。
print(g.name) #apple g['price'] = 8 #启动__setitem__方法来增加属性。
print(g['price']) #
print(g.price) # g.__dict__['name'] = 'pear'
print(g['name']) #pear,启动__setitem__方法来修改属性。 del g['name'] #启动__delitem__来删除属性。
print(g.__dict__) #{'price': 8}

最新文章

  1. iOS如何彻底避免数组越界
  2. 别名现象,java对象之间的相互赋值
  3. 【基础知识】.Net基础加强06天
  4. 类型引起的bug
  5. mvc api
  6. 互联网 DBA 需要做那些事(转)
  7. hdu 4115 2-SAT判定
  8. 关于Java的this关键字
  9. Custome Buble Data Point
  10. bzoj1615 [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
  11. java一个简单的管理系统
  12. CLOSE_WAIT状态的原因与解决方法
  13. jdk8中关于操作集合的一些新特性,遍历和排序操作
  14. oracle安装教程及常用命令
  15. Arrays.asList中所遇到的坑
  16. java 网络编程(四)TCP通讯
  17. 火币网API文档——REST 行情、交易API简介
  18. 【2018暑假集训模拟一】Day2题解
  19. delphi 控件的名称怎么不显示了
  20. mac版IDEA使用maven的问题

热门文章

  1. 动手动脑 4 String 类
  2. 2pc和3pc区别
  3. 18 11 27 高级的服务器连接 epoll
  4. Python爬虫连载1-urllib.request和chardet包使用方式
  5. delphi内嵌汇编
  6. UVA 11732 链表+字典树
  7. 干货 | 运维福音——Terraform自动化管理京东云
  8. caffe fastercbnnahdemo
  9. CMake工具总述
  10. C语言程序设计|05