Python说文解字_半成品再加工
1. 其实在编写代码的时候,根据需求和程序员的喜好,对现有类中的属性和方法进行二次加工,原先所给与的属性和方法贴合自己想要的需求。这就是我们常说的“重写”和二次封装。
2. 比如我们对现有的库list进行二次封装,添加上判断的语句。
代码1:
class EvenOnly(list): def append(self, integer): if not isinstance(integer,int): raise TypeError("Only integers can be add") elif integer % 2: raise ValueError("Only even numbers can be added") super().append(integer) e = EvenOnly() e.append('a string') # raise TypeError("Only integers can be add") # TypeError: Only integers can be add e.append(3) # raise ValueError("Only even numbers can be added") # ValueError: Only even numbers can be added e.append(2)
说明1:我们在这里发现了,这个类继承的是list这个父类,对父类中的append方法进行了二次加工和封装。
class EvenOnly(list): def append(self, integer): if not isinstance(integer,int): raise TypeError("Only integers can be add") elif integer % 2: raise ValueError("Only even numbers can be added") else: return integer e = EvenOnly() print(e.append(2)) # 2
这样这个方法是不是更好用呢?
2.代码的重复性:
如何避免代码的重复性?最简单的方案就是把代码放到一个函数中,通过参数来处理不同的情况。这样做不是很符合面向对象的方案,但是通常是最优方案。
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。