python 面向对象之多态及元类
多态
- 多态首先是建立在继承的基础上的,先有继承才能有多态。
- 多态是指不同的子类在继承父类后分别都重写覆盖了父类的方法,即父类同一个方法,在继承的子类中表现出不同的形式。
- 多态成立的另一个条件是在创建子类时候必须使用父类new子类的方式
元类
- 类也是对象,可以在运行时动态的创建。
- 对于动态的创建类,可以使用type,它可以接受一个类的描述作为参数,然后返回一个类。
- type还可以创建带有属性的类,可以接受一个字典来为类定义属性。
- 可以使用type创建带有方法的类,即为类增加方法时,可以定义一个恰当签名的函数并将其作为属性。
-
元类就是用来创建类的“东西”,创建类就是创建类的实例对象,元类就是用来创建这些类(对象)的,元类就是类的类
-
函数type实际上是一个元类,是python在背后用来创建所有类的元类。
MyClass= MetaClass() #使用元类创建出一个对象,这个对象成为“类” MyObject = MyClass() #使用“类”来创建出实例对象 Myclass = type('MyClass')
type(‘MyClass’)