diff --git a/02.面向对象/06.反射与双下方法.md b/02.面向对象/06.反射与双下方法.md index ec9e199..a959673 100644 --- a/02.面向对象/06.反射与双下方法.md +++ b/02.面向对象/06.反射与双下方法.md @@ -481,30 +481,31 @@ class A: ```python class Foo: - def __init__(self,name): - self.name=name + def __init__(self, name): + self.name = name def __getitem__(self, item): print(self.__dict__[item]) def __setitem__(self, key, value): - self.__dict__[key]=value + self.__dict__[key] = value print('赋值成功') - + def __delitem__(self, key): print('del obj[key]时,我执行') self.__dict__.pop(key) - + def __delattr__(self, item): print('del obj.key时,我执行') self.__dict__.pop(item) -f1=Foo('sb') -f1['age']=18 -f1['age1']=19 + +f1 = Foo('张三') +f1['age'] = 18 +f1['age1'] = 19 del f1.age1 del f1['age'] -f1['name']='mingzi' +f1['name'] = '李四' print(f1.__dict__) ``` @@ -549,8 +550,9 @@ class Diycontextor: self.filehander.close() -with Diycontextor('config', 'r') as f: - for i in f: +with Diycontextor('config', 'a+') as f: + f.seek(0) + for i in f.readlines(): print(i.strip()) ``` @@ -611,16 +613,16 @@ class RoleConfig(StarkConfig): class AdminSite: def __init__(self): - self._registry = {} + self.registry_db = {} def register(self, k, v): - self._registry[k] = v + self.registry_db[k] = v site = AdminSite() site.register(UserInfo, StarkConfig) # 1 -obj = site._registry[UserInfo]() +obj = site.registry_db[UserInfo](100) # 2 # obj = site._registry[UserInfo](100) @@ -657,11 +659,15 @@ class AdminSite: def register(self,k,v): self._registry[k] = v(k) + @property + def registry_db(self): + return self._registry + site = AdminSite() site.register(UserInfo,StarkConfig) site.register(Department,RoleConfig) -for k,row in site._registry.items(): +for k,row in site.registry_db.items(): row.run() ```