国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Python中type構造函數參數說明

2019-11-14 17:16:52
字體:
來源:轉載
供稿:網友

測試代碼如下:

 1 class ModelMetaClass(type): 2     def __new__(cls,name,base,attrs): 3         logging.info("cls is:"+str(cls)) 4         logging.info("name is:"+str(name)) 5         logging.info("base is:"+str(base)) 6         logging.info("attrs is:"+str(attrs)) 7         return type.__new__(cls,name,base,attrs) 8         pass 9     pass10 11 class Model(dict):12     __metaclass__ = ModelMetaClass13     def __init__(self):14         pass15     pass16 17 def main():18     m=Model()19 20 if __name__ == '__main__':21     main()

測試結果:

1 INFO:root:cls is:<class '__main__.ModelMetaClass'>2 INFO:root:name is:Model3 INFO:root:base is:(<type 'dict'>,)4 INFO:root:attrs is:{'__module__': '__main__', '__metaclass__': <class '__main__.ModelMetaClass'>, '__init__': <function __init__ at 0x025C76F0>}

結論就顯而易見了。cls是當前類的名字,即類本身。name是通過__metaclass__屬性指向ModelMetaClass的類,即要實例化的類,ModelMetaClass攔截了該類的實例化。base是要實例化的類的基類。attrs是要實例化的類的屬性集合。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 纳雍县| 湘潭县| 广饶县| 赤城县| 闽清县| 锦州市| 北辰区| 马关县| 建阳市| 福安市| 黄平县| 建湖县| 墨竹工卡县| 梧州市| 墨竹工卡县| 津市市| 南川市| 师宗县| 耿马| 屏边| 沙田区| 屏山县| 吉安市| 壶关县| 仁布县| 屏山县| 青岛市| 邮箱| 武穴市| 富蕴县| 平和县| 芷江| 丹东市| 麦盖提县| 宁晋县| 南和县| 南雄市| 顺平县| 宽甸| 上林县| 宣恩县|