# 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...