| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
- #
 
  
- #知识点
 
 - """
 
 - 1. 容器的魔法方法:
 
 - __len__(self): 定义当被 len() 调用时的行为(返回容器中元素的个数)
 
 - __getitem__(self, key): 定义获取容器中指定元素的行为,相当于 self[key]
 
 - __setitem__(self, key, value): 定义设置容器中指定元素的行为,相当于 self[key] = value
 
 - __delitem__(self, key): 定义删除容器中指定元素的行为,相当于 del self[key]
 
 - __iter__(self): 定义当迭代容器中的元素的行为
 
 - __reversed__(self): 定义当被 reversed() 调用时的行为
 
 - __contains__(self, item): 定义当使用成员测试运算符(in 或 not in)时的行为
 
  
 
- 2. Python 允许我们自己定制容器,如果你想要定制一个不可变的容器(String): 就不能定义像 __setitem__() 和 __delitem__() 这些会修改容器中的数据的方法。
 
  
- 3. 若要定制可变的容器, 则要加上__setitem__()和__delitem__()这两个方法"""
 
  
- class  Count(list):
 
 -     def  __init__(self, *args):
 
 -         super().__init__(args)
 
 -         self.count = [0 for x in range(len(args))]
 
  
-     def  __len__(self):
 
 -         super().__len__()
 
  
-     def  __getitem__(self, key):
 
 -         self.count[key] += 1
 
 -         return  super().__getitem__(key)
 
  
-     def  __setitem__(self, key, value):
 
 -         self.count[key] += 1
 
 -         super().__setitem__(key, value)
 
  
-     def  __delitem__(self, key):
 
 -         del  self.count[key]
 
 -         super().__delitem__(key)
 
  
-     def  reverse(self):
 
 -         self.count.reverse()
 
 -         super().reverse()
 
  
-     def  append(self, value):
 
 -         self.count.append(0)
 
 -         super().append(value)
 
  
-     def  extend(self, values):
 
 -         for  x in values:
 
 -             self.count.append(0)
 
 -         super().extend(values)
 
  
-     def  insert(self, index, value):
 
 -         self.count.insert(index, 0)
 
 -         super().insert(index, value)
 
  
-     def  pop(self, index = -1):
 
 -         del self.count[index]
 
 -         return super().pop(index)
 
  
-     def  remove(self, value):
 
 -         key = self.index(value)
 
 -         del self.count[key]
 
 -         super().remove(value)
 
  
-     def  clear(self):
 
 -         self.count.clear()
 
 -         super().clear()
 
  
-     def  counter(self, key):
 
 -         return self.count[key]
 
  复制代码 |   
 
 
 
 |