zoukankan      html  css  js  c++  java
  • 二十一.面向对象 元类type

    一. 元类(metaclass)

    在python中一切皆对象,那么我们用class关键字定义的类本身也是一个对象,负责产生该对象的类称之为元类,即元类可以简称为类的类


    https://www.cnblogs.com/nickchen121/p/10992975.html 详细.........

    https://www.cnblogs.com/linhaifeng/articles/8029564.html 详细.......


    class Foo(object):
        ...
    aa=Foo()
    print(type(aa))  # <class '__main__.Foo'>
    print(type(Foo))  # <class 'type'>
    
    print("***********************************************************")
    
    Per=type('Per',(object,),{"x":1})
    print(Per.__dict__)
    print(Per.x)
    
    
    print("***********************************************************")
    
    # type 实例化   就是类的类     type 元类
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def aa(self):
        print("这是类的类 元类type创建的哈哈哈哈哈哈")
        print(self.name)
    
    Per=type('Per',(object,),{'x':1,' __init__':__init__,'aa':aa})
    print(Per)
    print(Per.__dict__)
    # a1=Per("张三",55)
    print(Per.x)
    #
    # f1=Per("展示柜",55)
    # print(f1.name)
    创建类的3个要素:类名,基类,类的名称空间
    
    People = type(类名,基类,类的名称空间)
    
    class_name = 'People'  # 类名
    
    class_bases = (object, )  # 基类
    
    # 类的名称空间
    class_dic = {}
    
    class_body = """
    country='China'
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def eat(self):
        print('%s is eating' %self.name)
    """
    
    exec(
        class_body,
        {},
        class_dic,
    )
  • 相关阅读:
    自己总结的Java归并排序代码
    SpringDataJpa
    多态
    向上转型向下转型
    python面向对象装饰器
    Apache
    git
    μWSGI
    虚拟环境
    软件仓库(持续更新中)
  • 原文地址:https://www.cnblogs.com/Sup-to/p/11091146.html
Copyright © 2011-2022 走看看