Mixins机制和元类

发布时间 2023-06-29 15:33:14作者: 凡人半睁眼

一、Mixins机制

Mixins机制是一种在面向对象编程中用于代码复用的灵活机制,通过将特定功能的代码块注入到类中,增强了类的功能,同时保持了类的层次结构的简洁性和灵活性。

案例:

定义一个交通工具类,民航飞机和直升飞机、汽车都属与交通工具,继承交通工具类。

但是汽车不会飞,将fly的方法从交通工具类中提出来,做一个新类。

民航飞机和直升飞机继承多个类,汽车只继承交通工具类

class Vehicle:  # 交通工具
    pass

class FlyMinix():
    def fly(self):
        '''
        飞行功能相应的代码
        '''
        print("I am flying")

"""
1. 主类:就是大部分都是主要的功能
2. 辅类:就是一些辅助的功能
3. 辅类的类名也有讲究:一般以mixin、able、ible等结尾
4. 继承的位置也有讲究
"""

class CivilAircraft(FlyMinix, Vehicle):  # 民航飞机
    pass

class Helicopter(FlyMinix, Vehicle):  # 直升飞机
    pass

class Car(Vehicle):  # 汽车并不会飞,但按照上述继承关系,汽车也能飞了
    pass

二、元类

1、什么是元类

产生类的类

2、查看元类type

class Vehicle:  # 交通工具
    pass

class Car(Vehicle):  # 汽车并不会飞,但按照上述继承关系,汽车也能飞了
    pass

qiche = Vehicle()
print(type(qiche))  # <class '__main__.Vehicle'>
print(type(Vehicle)) # <class 'type'>

3、产生类的两种方式

方式1:

 

class 类名():
    pass

方式2:
由于所有类都是有type类造出来的,所以我们也可以使用type类造出来一个新类

type(object_or_name, bases, dict)
# 这三个条件就是造出来类的三个要素.
type("类名", "父类", "类的名称空间")

4、