反射作业
1.基于授权定制自己的列表类型,要求定制的自己的__init__方法, 2.定制自己的append:只能向列表加入字符串类型的值 3.定制显示列表中间那个值的属性(提示:property) 4.其余方法都使用list默认的(提示:__getattr__加反射)
class List: def __init__(self,x): self.seq=list(x) def append(self,value): if not isinstance(value,str): raise TypeError('must be str') self.seq.append(value) @property def mid(self): index=len(self.seq)//2 return self.seq[index] def __getattr__(self, item): return getattr(self.seq,item) def __str__(self): print("111") return str(self.seq) l=List([1,2,3]) l.append('1') print(l.mid) l.insert(0,123)