python-元类

元类:

         产生类的类称元类,所有用class定义的类,它们的元类是type。

知识:exec()方法

1、        字符串形式的命令

2、        全局作用域(字典形式)不指定,默认使用globals()

3、        局部作用域(字典形式)不指定,默认使用locals()

Python 中一切皆对象(统一的使用的方式):

       对象的用法:(模块、对象、函数、类等)

1、        都可以被引用 x =obj

2、        都可以当函数的参数传入

3、        都可以当函数返回值

4、        都可以当做容器类型:容器类型【list tuple dict set 】

创建类的两种方式

一、使用class关键字(常用)

 

# 方法一 class 定义类
class Chinese:
    country = 'china'
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def talk(self):
        print('%s is talking' %self.name)

c1=Chinese('老黄',19)

c1.talk()
用class定义类

二、自定义模拟class创建类的过程:

用type 定义类 的三要素

1、类名 2、类的父类、3、类的名称空间

# 方法二 type 定义类
# 用type 定义类的三要素
# 1、类名
# 2、类的父类
# 3、类体

# 类的三要素 类名、 类的基类、类的名称空间
class_name = 'Chinese1'  # 1、类名
class_bases=(object,)   # 2、类的基类
class_body='''
country = 'china'

def __init__(self, name, age):
    self.name = name
    self.age = age

def talk(self):
    print('%s is talking' % self.name)

'''

class_dic={}            # 3、类的名称空间
exec(class_body,globals(),class_dic)

Chinese1=type(class_name,class_bases,class_dic )

ch1=Chinese1('老黄',20)
print(Chinese1,ch1.name,ch1.age)
用type定义类

猜你喜欢

转载自www.cnblogs.com/AYxing/p/9022082.html