python 学习 对象切片化
# 切片的基础 a [1,2] c a[3,4] a(3,4) print(a) a.extend(range(3)) print(a) mylist[1,2,3,4,5] mylist[:3] [a,b,c] #这里是赋值前面的个数必须和后面的可以赋值数量一致左边是3个要赋值的右边×3 mylist[::2] [0]*3 #是每隔一个总共修改3次 但是 a[0]*3 结果是 [0, 0, 0] mylist[::2] [x,y,z] mylist[:3] [] #删除前3个 print(mylist) #以下是对象的切片化 import numbers class Group: def __init__(self,group_name,company_name,staffs): self.group_name group_name self.company_name company_name self.staffs staffs def __reversed__(self): self.staffs.reverse() def __getitem__(self,item): # return self.staffs[item] cls type(self) if isinstance(item,slice): return cls(group_nameself.group_name,company_nameself.company_name,staffsself.staffs[item]) elif isinstance(item,numbers.Integral): return cls(group_nameself.group_name,company_nameself.company_name,staffs[self.staffs[item]]) def __len__(self): return len(self.staffs) def __iter__(self): return iter(self.staffs) def __contains__(self,item): return item in self.staffs staffs [red,black,white,blue,orange] group Group(company_nameimooc,group_nameuser,staffsstaffs) print(group[:2]) print(len(group)) print(white1 in group) for user in group: print(user) reversed(group) print(list(group)) #[orange, blue, white, black, red]