|
# -*- coding : utf-8 -*-
"""
包装类,就是给被包装的类加个壳;被包装内实现壳的内部,而包装内提供壳的外部(接口),有点类似于继承关系,
不过也不完全时,因为通过继承也可以实现包装效果,不使用继承同样可以实现包装效果。下面通过一个例子来展示
包装的概念
"""
class PackageList(object):
"包装List类型,使用非继承实现"
def __init__(self):
"构造方法,建立一个内部list对象"
self.innerList = []
def add(self, element):
"添加一个元素"
self.innerList.append(element)
def remove(self, element):
"删除一个元素"
self.innerList.remove(element)
def extend(self, elements):
"扩展一个元素或者一个列表"
if isinstance(elements, list):
self.innerList.extend(elements)
else:
self.innerList.append(elements)
def get(self, start = 0, end = -1, step = 1):
"获取列表,或者某个元素,或者某个区域的元素"
if isinstance(start, int) and isinstance(end, int) and isinstance(step, int):
if end == -1:
return self.innerList[start::step]
else:
return self.innerList[start : end : step]
else:
raise TypeError
if __name__ == "__main__":
packageList = PackageList()
# 添加一个元素
packageList.add(1)
# 添加一个序列
packageList.extend([2, 3, 4])
# 删除一个元素
packageList.remove(3)
# 获取列表
print(packageList.get()) |
|
|