自定義元類控制類的建立

2022-07-21 05:51:16 字數 997 閱讀 9163

# chinese每次建立由原來的type改為mymeta,因此可以在mymeta內對類進行一些特殊定製

# 示例一:類名的大小寫強控

## class mymeta(type):

# def __init__(self,class_name,class_bases,class_dic):

# if not class_name.istitle():

# raise typeerror('類名的首字母必須大寫!')

# super(mymeta,self).__init__(class_name,class_bases,class_dic)

# class chinese(object,metaclass=mymeta):

## country = 'china'

## def __init__(self,name,age):

# self.name = name

# self.age = age

## def talk(self):

# print('%s is talking' % self.name)

# 示例二:注釋強控

class mymeta(type):

def __init__(self,class_name,class_bases,class_dic):

if '__doc__' not in class_dic or not class_dic['__doc__'].strip():

raise typeerror('必須有注釋,且注釋不能為空!')

super(mymeta,self).__init__(class_name,class_bases,class_dic)

class foo(object,metaclass=mymeta):

'''注釋

'''pass

python 元類type建立類的類 自定義元類

class a pass print 列印類 print a print 列印類物件 print a print 類為自己增加屬性 a.attr1 10 print 類拷貝給乙個變數 b a print 判斷某個屬性是否為此類的 print hasattr b,attr1 print 類卓偉乙個引數...

建立自定義異常類

建立自定義的異常類需要繼承自exception類,並提供含有乙個string型別形參的構造方法,該形參就是一場的描述資訊,可以通過getmessage 方法獲得。例如 public class newexception extends exception try catch在main裡頭用哈,具體的...

自定義建立元類

coding utf 8 class upperattrmetaclass type new 是在 init 之前被呼叫的特殊方法 new 是用來建立物件並返回之的方法 而 init 只是用來將傳入的引數初始化給物件 new 能夠控制物件的建立 這裡,建立的物件是類,自定義這個類,我們這裡改寫 ne...