美文网首页Python学习
python中自定义元类控制类的创建

python中自定义元类控制类的创建

作者: wangcc_sd | 来源:发表于2019-03-08 17:31 被阅读0次
自定义元类控制类
# -*-coding:utf-8 -*-
# BY WANGCC

class Mymeta(type):
    def __init__(self,class_name,class_bases,class_dir):
        if not class_name.istitle():
            raise TypeError('类名必须大写')
        if '__doc__' not in class_dir or not class_dir['__doc__'].strip():
            raise TypeError('必须有注释,且注释不能为空')
        print('class_name',class_name)
        print('class_bases',class_bases)
        print('class_dir',class_dir)
class Chinese(object,metaclass=Mymeta):
    '''
    默认metaclass = type  这里我们让它继承自己定义的元类metaclass = Mymeta
    里我们只要定义类'Chinese'就会触发自定义元类Mymeta的执行
    所有自定义元类里面必须有__init__方法, 同时我们也可以对类名的大小写和类的名称空间的文档注释进行控制是否有写入
    '''
    country= 'China'

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

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

obj=Chinese('egon',age=18,)
print(obj.__dict__)

ps:感觉这个和装饰器有些类似,周末需要在学习一下这个。

相关文章

  • 面向对象 六

    目录 1.元类 1.1 类创建过程 1.2 元类控制类的创建 1.3 元类控制类的创建过程案例 1.4 自定义元...

  • python中自定义元类控制类的创建

    ps:感觉这个和装饰器有些类似,周末需要在学习一下这个。

  • Python类的构造与初始化

    在Python中,可以通过class关键字定义自己的类,然后通过自定义的类对象类创建实例对象。 python中创建...

  • 10.元类

    元类的对象是类type是python的内建元类 自定义元类:

  • 元类

    概述 在 Python 中,类也是对象。对象是由类创建的,而类是由元类创建的,也就是说,元类就是类的类。Pytho...

  • Python元类及单例设计模式案例解析

    Time will tell. 一、元类 元类用于创建类的类。在 python 中,万物皆对象,类当然也是对象。 ...

  • python虚拟机中的类机制

    本文从底层介绍python中的类机制,首先介绍python中类和对象的关系,创建类对象的方式,以及元类的概念,然后...

  • type与元类

    原文 1、什么是元类 通过上文的描述,我们知道了Python中的类也是对象。元类就是用来创建这些类(对象)的,元类...

  • python 类

    类 用来描述具有相同的属性和方法的对象的集合。python中的类就是对象。 python 中的元类详解 创建Dog...

  • python面向对象(二)

    元类 python中,对象是由元类创建的,类也是一种对象,也就是说元类就是‘类的类’eg、电脑中的cpu、内存等等...

网友评论

    本文标题:python中自定义元类控制类的创建

    本文链接:https://www.haomeiwen.com/subject/uaqdpqtx.html