class Foo:
def __init__(self,name,age):
self.name=name
self.age=age
def __getitem__(self,item):
print('getitem')
print(item)
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)
# self.__dict__.pop(key)
del self.__dict__[key]
obj=Foo('egon',18)
#查看属性:
obj['name'] # 相当于obj.name
obj['age']
#设置属性
obj['sex']='male' #相当于 obj.sex='male'
print(obj.__dict__)
print(obj.sex) # 为增加的 'male
#删除属性
del obj.name
del obj['age']
print(obj.__dict__)
# str 用法
d=dict({'name':'egon'})
print(isinstance(d,dict))
print(d)
class People:
def __init__(self,name,age):
self.name=name
self.age=age
def __str__(self): #核心
print('---->str')
return 'name:%s,age:%s'%(self.name,self.age) #核心
obj=People('egon',18)
print(obj)
#__del__
f=open('settings.py') # 操作系统打开了
f.read()
f.close() #回收操作系统的资源
print(f)
class Open:
def __init__(self,filename):
print('open file')
self.filename=filename
def __del__(self):
print('回收操作系统资源:self.close()')
f=Open('settings.py')
# del f # f.__del__()
print('----main----') # del f # f.__del__()