exec模块,元类与ORV的应用

Posted jinhongquan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了exec模块,元类与ORV的应用相关的知识,希望对你有一定的参考价值。

        exec模块的补充
        1.是什么?
            exec是一个Python内置模块。
    
        2.exec的作用:
            '''
            x = 10
            def func1():
                pass
            '''
            可以把"字符串形式"的python代码,添加到全局空间或局部名称空间中。
    
        3.怎么用:
                # 参数1: 字符串形式的python代码
                # 参数2: 全局名称空间字典
                # 参数3: 局部名称空间字典
            调用exec()
    
    .元类
        1.什么是元类?
            元类就是类的类,Chinese类的类是type,type是所有类的类,type就是一个元类。
    
        2.元类的作用?
            元类可以帮我们控制类的创建。
            元类可以帮我们控制类的调用。
    
        3.怎么自定义创建元类:
            1) 自定义一个元类,继承type,派生出自己的属性与方法。
            2) 给需要使用的类,通过metaclass指定自定义好的元类。
                - class Chinese(metaclass='自定义的元类'):
    
    .优酷架构
        - ATM
            - 用户视图层
            - 接口层
            - 数据层
                - dict
                - json
                优点:
                    数据可以跨平台。
    
                缺点:
                    不能存对象,也不能直接获取对象。 {。。。}
                    不能通过“对象.属性”的方式 存、取值。
                    存储速度比pickle慢。
    
        - 选课系统
            - 用户视图层
            - 接口层
            - 数据层
                - models:
                    - obj
                - pickle
                优点:
                    可以通过“对象.属性”的方式 存、取值。
                    能存对象,也能直接获取对象。
                    - pickle
    
                缺点:
                    不能跨平台。
    
        - 优酷
            - 用户视图层
            - 接口层
            - 数据层
                - 存储对象 ---> dict ---> Json ---> mysql
                - MySQL ---> Json ---> dict ---> 获取对象
    
    .ORM: 对象关系映射
    ORM: 对象关系映射 ---> 映射到数据库MySQL中的数据表
    类名 ---> 表名
对象 ---> 一条记录
对象.属性 ---> 字段

模拟Django的ORM,为了,将数据库的 增、删、改、查,全部封装成
一个个的方式,比如: save, delete, update, select。
    

以上是关于exec模块,元类与ORV的应用的主要内容,如果未能解决你的问题,请参考以下文章

1104课堂小结

16 元类

Python 元类与类装饰器

用于预定义类创建的元类与继承

模型元类与模型形式元类有何不同?

将元类与多重继承结合使用的 TypeErrors