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


    class Mymeta(type):
    def __init__(self, class_name, class_bases, class_dic):
    if not class_name.istitle():
    raise TypeError('首字母必须大写')
    if '__doc__' not in class_dic or not class_dic['__doc__'].strip():
    raise TypeError('必须写注释且不能为空!')
    print(class_name)
    print(class_bases)
    print(class_dic)
    super(Mymeta, self).__init__(class_name, class_bases, class_dic)
    print(self)

    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('老王的媳妇出轨啦!')

  • 相关阅读:
    1755:菲波那契数列
    1788:Pell数列
    3089:爬楼梯
    7832:最接近的分数
    7649:我家的门牌号
    7216:Minecraft
    7213:垃圾炸弹
    2983:谁是你的潜在朋友
    2723:因子问题
    2722:和数
  • 原文地址:https://www.cnblogs.com/yuexijun/p/10323654.html
Copyright © 2020-2023  润新知