<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      python - metaclass


       

       

       

      metaclass 的作用

      - 在python 的世界, 一起都是object. 類也是object。 上面這張圖很好的描述了class 類的創建過程。 通過下面的例子來了解類的創建過程, 實例對象的創建過程。

      通過這個過程, 可以了解metaclass 的作用。

       1 import re
       2 
       3 
       4 class LittleMeta(type):
       5     def __new__(cls, clsname, superclasses, attributedict):
       6         if re.match("[a-z]", clsname[0]):
       7             raise Exception
       8         print(f"LittleMeta __new__ - attributedict {attributedict}。。。")
       9         return type.__new__(cls, clsname, superclasses, attributedict)
      10 
      11     def __init__(self, *args, **kwargs):
      12         print(f"LittleMeta __init__ *args - {args}... **kwargs - {kwargs}...")
      13         pass
      14 
      15     def __call__(self, *args, **kwargs):
      16         print("LittleMeta __call__  *args - {args}... **kwargs - {kwargs}...")
      17         super(LittleMeta, self).__call__(*args, **kwargs)
      18 
      19 
      20 class Student(metaclass=LittleMeta):
      21     cls_name = "jiangnan"
      22     def __init__(self, name, age):
      23         self.name = name
      24         self.age = age
      25 
      26 
      27 
      28 print("start assign a instance for Student class")
      29 s1 = Student("allen", 15)
      30 print("done")
      View Code

       

       

      代碼執行結果如下:

      LittleMeta __new__ - attributedict {'__module__': '__main__', '__qualname__': 'Student', 'cls_name': 'jiangnan', '__init__': <function Student.__init__ at 0x000001FC22235A20>}。。。
      LittleMeta __init__ *args - ('Student', (), {'__module__': '__main__', '__qualname__': 'Student', 'cls_name': 'jiangnan', '__init__': <function Student.__init__ at 0x000001FC22235A20>})... **kwargs - {}...
      start assign a instance for Student class
      LittleMeta __call__  *args - {args}... **kwargs - {kwargs}...
      done

      分析:

      1. 在創建Student class 的過程中, 即 line 20 class Student, python 其實是實例化metaclass, 調用的metaclass 的 __new__(), __init__()

      2. 在執行 s1 = Student("allen", 15) 時, 其實是調用metaclass 的__call__().

      posted on 2022-11-24 14:48  MissLi12138  閱讀(42)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 杭锦旗| 久久亚洲色www成人| 日本无遮挡真人祼交视频| 婷婷四虎东京热无码群交双飞视频 | 国产精品高清国产三级囯产AV| 纳雍县| 无码日韩av一区二区三区| 亚洲婷婷综合色高清在线| 国产乱码字幕精品高清av | 温州市| 国产精品露脸视频观看| 1000部拍拍拍18勿入免费视频| 精品无码国产日韩制服丝袜| 97人妻无码一区| AV免费播放一区二区三区| 国产欧美综合在线观看第十页| 亚洲av无码一区二区三区网站| 日韩乱码人妻无码中文字幕| 日韩精品一区二区蜜臀av| 无码国模国产在线观看免费| 亚洲国产精品久久久天堂麻豆宅男| 国产亚洲久久久久久久| 亚洲av成人无码天堂| 青草精品国产福利在线视频| 国产精品一区二区三区污| 蜜桃久久精品成人无码av| 国产精品一区二区三区蜜臀| 国产 麻豆 日韩 欧美 久久| a级国产乱理伦片在线观看al| 婷婷色综合成人成人网小说 | 日本亚洲一区二区精品久久| 亚洲精品中文综合第一页| 丹凤县| 伊人久久大香线蕉综合观| 精品人妻日韩中文字幕| 五大连池市| 成人欧美日韩一区二区三区| 丰满人妻一区二区三区高清精品 | 黑人巨大粗物挺进了少妇| 国产日本一区二区三区久久| 日韩欧美一卡2卡3卡4卡无卡免费2020 |