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.使用元类

  • 相关阅读:
    Moonlight, 我看行。
    传授犯罪方法罪
    Archos TV+ 1.8.07 照样“越狱”
    写这个月的回忆记,还真少不了学车那点儿事儿
    trigger()与triggerHandler()的不同
    移除不同的
    jq中的效果
    jquery中的文档操作之一addClass append attr
    jquery中的文档操作之四
    toggle方法
  • 原文地址:https://www.cnblogs.com/quanmeng/p/11880116.html
Copyright © 2011-2022 走看看