zoukankan      html  css  js  c++  java
  • 面向对象高级编程

    1._slots_

    限制类实例添加的属性信息

    2.@property

    广泛应用在类的定义中,可以让调用者写出简短的代码,同时保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性。

    如:

    class Screen(object):
        @property
        def width(self):
            return self.width
    
        @width.setter
        def width(self,value):
            self.width=value
    
        @property
        def height(self):
            return self._height
    
        @height.setter
        def height(self,value):
            self.height = value
    
        @property
        def solution(self):
            return self.height*self.width

    3.多重继承

    MixIn的目的就是给一个类增加多个功能,这样,在设计类的时候,我们优先考虑通过多重继承来组合多个MixIn的功能,而不是设计多层次的复杂的继承关系。

    4.定制类

    _str_:返回用户看到的字符串,_repr_返回程序开发者看到的字符串

    _iter_:如果一个类想被用于for ... in循环,类似list或tuple那样,就必须实现一个__iter__()方法,该方法返回一个迭代对象,然后,Python的for循环就会不断调用该迭代对象的__next__()方法拿到循环的下一个值,直到遇到StopIteration错误时退出循环。

    _getiter_:实现像list按下标取元素,需要实现该方法;list的切片方法fib直接使用会报错,原因是__getitem__()传入的参数可能是一个int,也可能是一个切片对象slice,所以要做判断

    _getatter_:当调用类或属性不存在时,我们用该方法,动态返回一个属性

    _call_:任何类,只需要定义一个__call__()方法,就可以直接对实例进行调用。

    5.枚举类型

    6.使用元类

  • 相关阅读:
    Ansible工作架构和原理
    基于WSAAsyncSelect模型的两台计算机之间的通信
    基于Select模型通信程序的编写,编译和执行
    Windows API窗口绘图程序设计
    常用自动化运维工具
    简单的程序发布流程
    TCPIP协议编程:基于UDP协议的局域网聊天工具的研发
    Python 遗传算法实现字符串
    python3 井字棋 GUI
    Docker 容器的跨主机连接
  • 原文地址:https://www.cnblogs.com/quanmeng/p/11880116.html
Copyright © 2011-2022 走看看