面向对象编程

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

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

  把一个getter方法变成属性,只须要加上@property就能够了;spa

  把一个setter方法变成属性赋值,@property自己会建立了另外一个装饰器@score.setter。设计

  还能够定义只读属性,只定义getter方法,不定义setter方法就是一个只读属性。code

多重继承:对象

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

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

  例如:class Dog(Mammal, RunnableMixIn, CarnivorousMixIn)字符串

定制类:

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

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

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

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

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

枚举类:

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

  @unique装饰器能够帮助咱们检查保证没有重复值。

元类:

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

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

      一、class的名称;

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

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

  metaclass:先定义metaclass,就能够建立类,最后建立实例。metaclass容许你建立类或者修改类。

相关文章
相关标签/搜索