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