" />

最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python是先運行metaclass還是先有類屬性解析

 更新時間:2023年05月31日 09:46:34   作者:ponponon  
這篇文章主要為大家介紹了python是先運行metaclass還是先有類屬性的問題原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

答案

先有 “類屬性”,再有 “運行 metaclass”

# 定義一個元類
class CustomMetaclass(type):
    def __new__(cls, name, bases, attrs):
        print('> cls', cls)
        print('> name', name)
        print('> attrs', attrs)
        print('> cls dict', cls.__dict__)
        # 在創(chuàng)建類時修改屬性
        new_attrs = {}
        for attr_name, attr_value in attrs.items():
            if isinstance(attr_value, str):
                new_attrs[attr_name] = attr_value.upper()
            else:
                new_attrs[attr_name] = attr_value
        obj = super().__new__(cls, name, bases, new_attrs)
        print(obj.__dict__)
        print(type(obj))
        return obj
# 使用元類創(chuàng)建類
class MyClass(metaclass=CustomMetaclass):
    name = 'John'
    age = 30
    greeting = 'Hello'
    def say_hello(self):
        print(self.greeting)
# 創(chuàng)建類的實例并調(diào)用方法
obj = MyClass()
print(obj.name)         # 輸出: 'JOHN'
print(obj.age)          # 輸出: 30
obj.say_hello()         # 輸出: 'Hello'

輸出結(jié)果

> cls <class '__main__.CustomMetaclass'>
> name MyClass
> attrs {'__module__': '__main__', '__qualname__': 'MyClass', 'name': 'John', 'age': 30, 'greeting': 'Hello', 'say_hello': <function MyClass.say_hello at 0x1025c2200>}
> cls dict {'__module__': '__main__', '__new__': <staticmethod(<function CustomMetaclass.__new__ at 0x1025c2290>)>, '__doc__': None}
{'__module__': '__MAIN__', 'name': 'JOHN', 'age': 30, 'greeting': 'HELLO', 'say_hello': <function MyClass.say_hello at 0x1025c2200>, '__dict__': <attribute '__dict__' of 'MyClass' objects>, '__weakref__': <attribute '__weakref__' of 'MyClass' objects>, '__doc__': None}
<class '__main__.CustomMetaclass'>
JOHN
30

以上就是python是先運行metaclass還是先有類屬性解析的詳細內(nèi)容,更多關(guān)于python metaclass類屬性的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python+matplotlib實現(xiàn)計算兩個信號的交叉譜密度實例

    Python+matplotlib實現(xiàn)計算兩個信號的交叉譜密度實例

    這篇文章主要介紹了Python+matplotlib實現(xiàn)計算兩個信號的交叉譜密度實例,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • python2與python3共存問題的解決方法

    python2與python3共存問題的解決方法

    這篇文章主要為大家詳細介紹了python2與python3共存問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 分布式全文檢索引擎ElasticSearch原理及使用實例

    分布式全文檢索引擎ElasticSearch原理及使用實例

    這篇文章主要介紹了分布式全文檢索引擎ElasticSearch原理及使用實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • Python使用cx_Oracle庫連接Oracle數(shù)據(jù)庫指南

    Python使用cx_Oracle庫連接Oracle數(shù)據(jù)庫指南

    這篇文章主要為大家介紹了Python使用cx_Oracle庫連接Oracle數(shù)據(jù)庫指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Python列表的深復(fù)制和淺復(fù)制示例詳解

    Python列表的深復(fù)制和淺復(fù)制示例詳解

    這篇文章主要給大家介紹了關(guān)于Python列表的深復(fù)制和淺復(fù)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • Jupyter Notebook遠程登錄及密碼設(shè)置操作

    Jupyter Notebook遠程登錄及密碼設(shè)置操作

    今天小編就為大家分享一篇Jupyter Notebook遠程登錄及密碼設(shè)置操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python魔術(shù)方法專題

    Python魔術(shù)方法專題

    這篇文章主要介紹了Python魔術(shù)方法的的相關(guān)資料,文章講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • Celery+django+redis異步執(zhí)行任務(wù)的實現(xiàn)示例

    Celery+django+redis異步執(zhí)行任務(wù)的實現(xiàn)示例

    本文主要介紹了Celery+django+redis異步執(zhí)行任務(wù)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-04-04
  • Python文本進度條實現(xiàn)過程

    Python文本進度條實現(xiàn)過程

    文章介紹了使用`print()`函數(shù)實現(xiàn)簡單的非刷新文本進度條的方法,并按照任務(wù)執(zhí)行百分比來更新進度條,提供了單行動態(tài)刷新和帶刷新的文本進度條的示例,此外,還設(shè)計了不同風格的進度條更新函數(shù),以適應(yīng)不同的需求和偏好
    2026-04-04
  • Python多線程編程入門詳解

    Python多線程編程入門詳解

    這篇文章主要為大家介紹了Python多線程編程,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12

最新評論

益阳市| 衢州市| 榕江县| 竹溪县| 合作市| 龙江县| 漳州市| 武义县| 海盐县| 黑山县| 吉隆县| 隆化县| 镇雄县| 阆中市| 惠水县| 昌都县| 莱阳市| 香港| 维西| 图木舒克市| 茂名市| 乌苏市| 醴陵市| 慈利县| 平凉市| 阳高县| 江陵县| 临海市| 关岭| 九台市| 扶余县| 太和县| 滨海县| 奈曼旗| 海原县| 万年县| 永和县| 丰都县| 湟源县| 屯留县| 广汉市|