zoukankan      html  css  js  c++  java
  • day38

    一 exec模块
    exec是python内置模块

    它可以把'字符串形式'的python代码,添加到全局空间或者局部空间中

    参数1: 字符串形式的python代码

    参数2: 全局名称空间字典

    参数3: 局部名称空间字典

    全局名称空间

    # 1.文本形式的python代码

    code = '''
    global x
    x = 10
    y = 20
    '''

    2.全局的名称空间 {}

    global_dict = {'x': 200}

    3.局部名称空间 {}

    local_dict = {}

    exec(code, global_dict, local_dict)
    print(global_dict)


    局部名称空间

    1.文本形式的python代码

    code = '''
    x = 100
    y = 200
    def func():
    pass
    '''

    2.全局的名称空间 {}

    global_dict = {}

    3.局部名称空间 {}

    local_dict = {}

    exec(code, global_dict, local_dict)
    print(local_dict)
    二 元类
    什么是元类

    元类是类的类

    type是所有类的类,type就是一个元类

    元类的作用

    元类可以控制类的产生过程,类的产生过程其实就是元类的调用过程

    作用:

    ​ 元类可以帮我们控制类的创建。

    ​ 元类可以帮我们控制类的调用。

    自定义创建元类

    自定义一个元类,继承type,派生出自己的属性与方法

    给需要使用的类,通过metaclass指定自定义好的元类

    ​ -class Chinese(metaclass = '自定义的元类'):

    自定义元类

    class MyMeta(type):
    def init(self,class_name,class_base,class_dict):
    if not class_name.istitle():
    raise TypeError('类的首字母要大写')

        #控制类中必须要有注释
        if not class_dict.get('__doc__'):
            raise TypeError('类内部必须注释')
            
        super().__init__(class_name,class_base,class_dict)
          
     def __call__(self,*args,**kwargs):
        #调用__new__() --> 创建一个空对象
        obj = object.__new__(self)
        #会执行__init__(obj,*args,**kwargs)
        obj.__init__(*args,**kwargs)
        return obj
    

    class Foo(object,metaclass=MyMeta):
    x =10
    def init(self,z,y):
    self.z = z
    self.y = y

    foo = Foo(1,2)
    三 ORM(对象映射关系程序)
    ​ 通过orm将编程语言的对象模型和数据库的关系模型建立映射关系,在使用编程语言对数据库进行操作的时候,可以直接使用编程语言的对象模型进行操作

    优点:

    1. 使与数据库交互变得简单易行
    2. 构造固化数据结构变得简单易行
  • 相关阅读:
    Linux性能优化实战学习笔记:第十九讲
    Linux性能优化实战学习笔记:第二讲
    Docker:企业级私有仓库harbor[十六]
    Docker:跨主机容器间通信之overlay [十五]
    Docker:macvlan实现容器跨主机通信 [十四]
    Docker:容器的四种网络类型 [十三]
    Docker:单机编排工具docker-compose [十二]
    Docker:私有仓库registry [十一]
    Docker:容器间互联的应用zabbix监控项目 [十]
    Docker:dockerfile镜像的分层 [九]
  • 原文地址:https://www.cnblogs.com/xwjhyy/p/11799085.html
Copyright © 2011-2022 走看看