zoukankan      html  css  js  c++  java
  • 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.代码的重复性:

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

  • 相关阅读:
    前人风采
    【C++ Primer 第16章】1. 定义模板 (一)
    CCF CSP认证考试试题
    【C++ Primer 第11章】4. 无序容器
    【C++ Primer 第11章 练习答案】2. 关联容器操作
    【C++ Primer 第11章】2. 关联容器操作
    dxRatingControl使用
    dxRangeTrackBar使用教程
    UniConnectDialog使用
    Delphi窗体置顶及失去焦点后取得焦点
  • 原文地址:https://www.cnblogs.com/noah0532/p/10959847.html
Copyright © 2011-2022 走看看