__getitem__,__setitem__ 在类或者对象调用 obj["v1"] obj["v2"]='22' 等方法时 此对象的特点
首先 可以使用 obj["kq1]="fasd " 方法的对象肯定是有 __setitem__ 方法
可以使用 obj["k2"] 方法的对象肯定有 __getitem__ 方法
第一种原因:
这个对象就是一个字典: 字典有可以使用此方法进行查询和增加等操作
第二种原因:
这个obj是一个继承了dict的类的一个特殊类的实例化对象
class A(dict): #因为此种类中继承了dict类,因为dict类中有 # __getitem__ 和 __setitem__方法,所以可以那样操作 def __init__(self,name,age): self.name=name self.age=age a=A('AD','DSF') a["namsse"]='dfsa' print(a['namsse']) #打印结果 dgsa
第三种原因:
z
class DataTest: def __init__(self,id,address): self.id=id self.address=address self.d={self.id:1, self.address:"192.168.1.1" } def __getitem__(self,key): #类中定义了 __getitem__方法,所以他实例化的 return "hello" #对象可以使用这种方式 data=DataTest(1,"192.168.2.11") print(data[2]) #所以这里可以这样取值
浙公网安备 33010602011771号