zoukankan      html  css  js  c++  java
  • exec

    exec模块的补充

    是什么?

    ​ exec是python内置模块

    exec的作用:

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

    调用

    ​ exec()

    1.文本形式的python代码

    code='''

    global #这里如果想要全局

    x=10

    y=20#默认是local的

    def func():

    ​ pass

    '''

    2.全局的名称空间{}

    global_dict={}

    3.局部名称空间

    local_dict={}

    exec传值第一个是字符串形式的代码,第二个是全局字典,第三个是局部字典

    exec(code,global_dict,local_dict)

    1.元类

    在python中一切皆对象

    number=int(10)

    def__str__

    print(number)

    class Chinese:
        country='China'
        def __init__(self,name,age)
        	self.name=name
            self.age=age
            
        def __init__(self):
            print('speak Mandarin')
    

    类创建两种方式

    1.通过class来创建,内部会调用type()

    2.通过手动调用type()实例化得到的类

    class_name='Chinese'

    class_base=(object,)

    class_dict{}

    code='''

    country="china"

    def __init__(self,name,age):

    ​ self.name=name

    ​ self.age=age

    def speak(self):

    ​ print("speak mandarin")

    '''

    exec(code,{},class_dict)

    Chinese=type(class_name,class_base,class_dict)
    print(Chinses)

    什么是元类

    就是类的类

    元类可以限制类的创建

    怎么创建元类:

    1.自定义一个类,让这个类继承type

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

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

    2.youku架构

    -ATM

    用户试图从

    接口层

    数据层

    -选课系统

    用户视图层

    接口层

    数据层

    ​ models

    ​ -obj

    ​ -pickel

    -youku

    用户视图层

    接口层

    数据层

    ​ dict

    ​ json

    ​ 优点:数据可以跨平台

    ​ 缺点:不能通过对象.属性 的方法存取值

    ​ 存储速度比pickle慢

    models:

    obj

    pickle

    有点:可以通过对象.属性的方式 存 取值

    能存对象,也能直接获取对象

  • 相关阅读:
    【转载】openCV轮廓操作
    求两个已排序数组的中位数
    朴素贝叶斯分类
    Different Ways to Add Parentheses
    QSerialPort
    opencv鼠标绘制直线 C++版
    Word Break
    C++中 指针 与 引用 的区别
    敲入url到浏览器后会发生什么
    Sort List 分类: leetcode 算法 2015-07-10 15:35 1人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/jimGraymane/p/11794564.html
Copyright © 2011-2022 走看看