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

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

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

原文地址:https://www.cnblogs.com/jimGraymane/p/11794564.html