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 % :
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()
# raise ValueError("Only even numbers can be added")
# ValueError: Only even numbers can be added e.append()

  说明1:我们在这里发现了,这个类继承的是list这个父类,对父类中的append方法进行了二次加工和封装。

class EvenOnly(list):
def append(self, integer):
if not isinstance(integer,int):
raise TypeError("Only integers can be add")
elif integer % :
raise ValueError("Only even numbers can be added")
else:
return integer e = EvenOnly()
print(e.append())
#

  这样这个方法是不是更好用呢?

2.代码的重复性:

  如何避免代码的重复性?最简单的方案就是把代码放到一个函数中,通过参数来处理不同的情况。这样做不是很符合面向对象的方案,但是通常是最优方案。

最新文章

  1. ASP.NET Core MVC TagHelper实践HighchartsNET快速图表控件-开源
  2. git与svn, tfs等源代码管理器的协同
  3. mongodb unclean shutdown 修复方法
  4. linux系统man命令用法和安装方法
  5. RM-Linux驱动--Watch Dog Timer(看门狗)驱动分析
  6. leetcode_question_112 Path Sum
  7. C# 操作IE浏览器
  8. 用Visual C++设计“精灵”窗体
  9. iosiOStextView实现文字高度自适应
  10. Python mysqldb模块
  11. VS2017 无法连接到Web服务器“IIS Express”终极解决方案
  12. notes for lxf(四)
  13. Linux主机操作系统加固规范
  14. linux把程序做成系统服务并自启动
  15. Linux下的计划任务at,batch,crontab
  16. 美团店铺评价语言处理以及分类(tfidf,SVM,决策树,随机森林,Knn,ensemble)
  17. 20165305 苏振龙《Java程序设计》第九周学习总结
  18. mysql日常笔记(持续更新)
  19. 2016湘潭邀请赛—Gambling
  20. [转]Add Bootstrap Glyphicon to Input Box

热门文章

  1. 国产超低功耗蓝牙5.0 PHY6202替换NRF51822
  2. 2018年Android面试题含答案--适合中高级(下)(转)
  3. 九十八、SAP中ALV事件之十一,查看图片
  4. C#使窗体不显示在任务栏
  5. 第一部分 JavaScript语言核心(一)
  6. (排序EX)P1583 魔法照片
  7. Http协议Get与Post请求
  8. UVA - 10384 The Wall Pusher(推门游戏)(IDA*)
  9. c++ opencv 动态内存
  10. Assignment写作需要掌握的两种表达方式