有關元類是什麼大家自己搜尋了解,我這裡寫一下實現元類的兩種寫法
#兩種方法的執行結果相同:自定義元類
#繼承type
class
lowercasemeta(type):
'''修改類的屬性名稱為小寫的元類
'''#
__new__ 類的實列的建立 #__init__類的初始化
#方法一:
def__new__
(mcs,name,bases,attrs):
lower_attrs={}
for k,v in
attrs.items():
ifnot k.startswith('
__'): #
排除magic method
lower_attrs[k.lower()]=v
else
: lower_attrs[k]=v
return type.__new__
(mcs,name,bases,lower_attrs)
#方法二:
#def __new__(cls, *args, **kwargs):
##將要替換args
#new_args=
#for arg in args:
#if isinstance(arg,dict):
#low_attrs = {}
#for k,v in arg.items():
#if str(k).startswith('__'): #magic method
#low_attrs[k]=v
#else: #排除magic method
#low_attrs[str(k).lower()]=v##
else:##
return type.__new__(cls,*new_args,**kwargs)#類
class lowercaseclass(metaclass=lowercasemeta): #
py3 bar=true
defhello(self):
print('
hello')
#此時bat,hello 都變為小寫
(dir(lowercaseclass))
lowercaseclass().hello()
Android 兩種自定義的Menu
雖然兩種方法有很多相似的地方,但是使用的方法不同,廢話不多說,帖方法了 方法一功能簡述 要實現能代替系統選單的自定義選單必須保證以下基本功能的實現 能通過menu鍵隱藏顯示選單 截獲系統menu鍵動態隱藏顯示 當獲得焦點時高亮顯示獲得焦點的選單項 實現按下選單狀態效果 能設定選單背景 能設定選單項背...
自定義dialog的兩種方式
介紹自定義對話方塊 dialog 的兩種方式 方式一 首先自定義乙個自己想要設計的對話方塊的介面布局,我的是這樣的 然後在activity類中進行展示,這裡我寫了乙個showinputpwddialog方法 輸入密碼對話方塊 private void showinputpwddialog 方式二 可...
自定義異常的兩種方式
自定義異常的兩種方式 一 丟擲異常 def greet name,city if notisinstance name,str raise typeerror name must be str if notisinstance city,str raise typeerror age must be...