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

    __slots__:限制该class实例能添加的属性,__slots__定义的属性仅对当前类实例起作用,对继承的子类是不起作用的。

    @property:Python内置的一个装饰器,负责把一个方法变成属性调用。

      把一个getter方法变成属性,只需要加上@property就可以了;

      把一个setter方法变成属性赋值,@property本身会创建了另一个装饰器@score.setter。

      还可以定义只读属性,只定义getter方法,不定义setter方法就是一个只读属性。

    多重继承:

      CLASS 类名(父类1,父类2,......) 例如:class Dog(Mammal, Runnable)

    MixIn:MixIn是一种在Python中常见的实现多继承的设计,方便更好地看出继承关系。

      例如:class Dog(Mammal, RunnableMixIn, CarnivorousMixIn)

    定制类:

      __str__:返回自定义的字符串格式。

      __iter__:调用__iter__()将一个类实现for ... in循环,类似list或tuple,该方法返回一个迭代对象,Python的for循环就会不断调用该迭代对象的__next__()方法拿到循环的下一个值,直到遇到StopIteration错误时退出循环。

      __getitem__:像list那样按照下标取出元素,需要实现__getitem__()方法。

      __getattr__:动态返回一个属性,当调用不存在的属性时,Python解释器会试图调用__getattr__()来尝试获得属性。

      __call__:可以直接对实例进行调用其属性和方法。通过callable()函数,可以判断一个对象是否是“可调用”对象。

    枚举类:

      Enum可以把一组相关常量定义在一个class中,且class不可变,而且成员可以直接比较。

      @unique装饰器可以帮助我们检查保证没有重复值。

    元类:

      type():可以查看一个类型或变量的类型,type()函数既可以返回一个对象的类型,又可以创建出新的类型

        要创建一个class对象,type()函数依次传入3个参数:  

          1、class的名称;

          2、继承的父类集合,Python支持多重继承,如果只有一个父类,注意tuple的单元素写法;

          3、class的方法名称与函数绑定。

      metaclass:先定义metaclass,就可以创建类,最后创建实例。metaclass允许你创建类或者修改类。

  • 相关阅读:
    【原】Sql2005 实现递归
    asp.net core api路由及多语言切换的实现
    一条语句实现查询各类别前10条记录
    【转】javascript操作cookies 以及 正确使用cookies的属性
    php 文件POST上传的原理及实现
    css3对background的调整与增强
    浅议javascript 中继承模式 (javascript高级程序设计)
    递归和递推:javascript求斐波那契数列的尾递归方法(转载)
    python中xrange和range的异同
    [译] JavaScript核心指南(JavaScript Core) 【转】
  • 原文地址:https://www.cnblogs.com/yl-saber/p/9541334.html
Copyright © 2011-2022 走看看