python中item是什么意思中文-python中的item

所谓Attr系列,其实是setattr,delattr,getattr 三个函数,从名字中可以看出来这是一套设置,删除,查询的函数,那我们来一个一个的看:

setitem(self,key,value):当对类中的某个属性进行"赋值"时触发的函数(只有使用字典赋值的方式时才会触发此方法的执行)

与Attr系列的区分:setattr(self):是在对象打点儿的方式赋值时,才会触发的方法

代码示例:

class Foo:

def __setitem__(self, key, value):

print(key,"获得",value)

f = Foo()

f["name"] = "egon"

delitem(self,key):当类中的某个属性被删除时,触发此方法(只有使用del字典方式删除属性时,才会触发此方法)

与Attr系列的区分:delattr(self):使用del类打点儿属性的方式删除属性,才会触发此方法

代码示例:

class Foo:

name = "egon"

def __delitem__(self, key):

print(key,"已被删除")

f = Foo()

del f["name"]

__getitem__(self,item):当调用类中的属性或方法时触发此方法的执行(只在使用类[key]字典的方式调用时,才会触发此方法)

与Attr系列的区分:其实这里已经很明显了,getattr(self):是类打点儿调用且命名空间没有发现名字的情况下,触发此方法

代码示例:

class Foo:

name = "egon"

def __getitem__(self, item):

print(item,"已被调用")

f = Foo()

f["name"]

综合代码实例

#item系列

class Foo: #Dict

def __init__(self,name,age):

self.name=name

self.age = age

def __getitem__(self, item): #item='namexxx'

print('getitem...')

return self.__dict__.get(item)

def __setitem__(self, key, value):

print('setitem...')

print(key,value)

self.__dict__[key]=value

def __delitem__(self, key):

print('delitem...')

print(key)

del self.__dict__[key]

obj=Foo('alex',11)

print(obj.__dict__)

#查看属性:

# obj.属性名

# print(obj['namexxx']) #obj.name

#设置属性:

obj.sex='male'

obj['sex']='male'

# print(obj.__dict__)

# print(obj.sex)

#删除属性

del obj.name

del obj['name']

#

# print(obj.__dict__)

你可能感兴趣的:(python中item是什么意思中文-python中的item)