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

python對象轉(zhuǎn)字典的兩種實(shí)現(xiàn)方式示例

 更新時間:2019年11月07日 09:03:05   作者:weixin_42359464  
這篇文章主要介紹了python對象轉(zhuǎn)字典的兩種實(shí)現(xiàn)方式,結(jié)合實(shí)例形式分析了Python字典與對象數(shù)據(jù)類型轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了python對象轉(zhuǎn)字典的兩種實(shí)現(xiàn)方式。分享給大家供大家參考,具體如下:

一. 方便但不完美的__dict__

對象轉(zhuǎn)字典用到的方法為__dict__. 比如對象對象a的屬性a.name='wk', a.age=18, 那么如果直接將使用a.__dict__獲得對應(yīng)的字典的值為: {name: 'wk', aget:18}, 很方便, 但是也存在一些限制. 其不完美之處在于:

比如:

class A(object):
  name = 'wukt'
  age = 18
  def __init__(self):
    self.gender = 'male'
a = A()
print(a.__dict__)

此時的打印結(jié)果是:

{gender: 'male'}

但是類變量name和age無法一同轉(zhuǎn)換.

二. 使用dict

使用dict的方式如下, 如果直接使用會報錯.

a = A()
dict(a)

使用dict之時, 將自動調(diào)用類中的keys方法, keys中定義了字典的鍵, 調(diào)用keys方法后, 程序?qū)⒁勒兆值淙≈档姆绞絿L試獲得這些鍵對應(yīng)的值.

當(dāng)使用如字典的取值方式時: 比如a['name'], 將會調(diào)用類中的__getitem__方法, __getitem__方法決定了這個值是多少.

因此只需要在一例中添加兩個方法就可以使對象可以通過dict轉(zhuǎn)字典:

def keys(self):
  return ('name', 'age' )
def __getitem__(self, item):
  return getattr(self, item)

通過這種方式, 既可以支持類變量的轉(zhuǎn)換, 又可以自定義需要轉(zhuǎn)換的字段.

完整代碼:

class A(object):
  name = 'wukt'
  age = 18
  def __init__(self):
    self.gender = 'male'
  def keys(self):
    '''當(dāng)對實(shí)例化對象使用dict(obj)的時候, 會調(diào)用這個方法,這里定義了字典的鍵, 其對應(yīng)的值將以obj['name']的形式取,
    但是對象是不可以以這種方式取值的, 為了支持這種取值, 可以為類增加一個方法'''
    return ('name', 'age', 'gender')
  def __getitem__(self, item):
    '''內(nèi)置方法, 當(dāng)使用obj['name']的形式的時候, 將調(diào)用這個方法, 這里返回的結(jié)果就是值'''
    return getattr(self, item)
a = A()
r = dict(a)
print(r)

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python字典操作技巧匯總》、《Python列表(list)操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 分享Pytorch獲取中間層輸出的3種方法

    分享Pytorch獲取中間層輸出的3種方法

    這篇文章主要給大家分享了Pytorch獲取中間層輸出的3種方法,文章內(nèi)容介紹詳細(xì),需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)或工作有所幫助
    2022-03-03
  • Python 面向?qū)ο缶幊痰娜筇匦灾^承

    Python 面向?qū)ο缶幊痰娜筇匦灾^承

    繼承也是面向?qū)ο缶幊倘筇匦灾唬酒恼挛覀兙蛠韺W(xué)習(xí)Python中繼承的用處、使用場景及用與不用的區(qū)別,感興趣的朋友一起來閱讀下面文章吧
    2021-09-09
  • termux中matplotlib無法顯示中文問題的解決方法

    termux中matplotlib無法顯示中文問題的解決方法

    這篇文章主要介紹了termux中matplotlib無法顯示中文問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python輸入圓半徑,計(jì)算圓周長和面積的實(shí)現(xiàn)方式

    Python輸入圓半徑,計(jì)算圓周長和面積的實(shí)現(xiàn)方式

    這篇文章主要介紹了Python輸入圓半徑,計(jì)算圓周長和面積的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python如何刪除print()中的空格

    Python如何刪除print()中的空格

    這篇文章主要介紹了Python如何刪除print()中的空格問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • NVIDIA安裝CUDA的實(shí)現(xiàn)(圖文教程)

    NVIDIA安裝CUDA的實(shí)現(xiàn)(圖文教程)

    本文主要介紹了NVIDIA安裝CUDA的實(shí)現(xiàn),包括系統(tǒng)要求、軟件下載、安裝步驟以及常見問題解決,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • 在PyCharm中高效使用遠(yuǎn)程文件編輯功能的實(shí)現(xiàn)

    在PyCharm中高效使用遠(yuǎn)程文件編輯功能的實(shí)現(xiàn)

    PyCharm作為業(yè)界領(lǐng)先的集成開發(fā)環(huán)境(IDE),提供了強(qiáng)大的本地和遠(yuǎn)程開發(fā)功能,本文詳細(xì)介紹了如何在PyCharm中使用遠(yuǎn)程文件編輯功能,希望能夠幫助你提高遠(yuǎn)程開發(fā)的效率和體驗(yàn)
    2024-08-08
  • Python實(shí)現(xiàn)文件壓縮和解壓的示例代碼

    Python實(shí)現(xiàn)文件壓縮和解壓的示例代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)文件壓縮和解壓的方法,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • Python 變量命名規(guī)則和定義變量詳解

    Python 變量命名規(guī)則和定義變量詳解

    這篇文章主要為大家介紹了Python 變量命名規(guī)則和定義變量,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • python實(shí)現(xiàn)簡易內(nèi)存監(jiān)控

    python實(shí)現(xiàn)簡易內(nèi)存監(jiān)控

    這篇文章主要介紹了python實(shí)現(xiàn)簡易內(nèi)存監(jiān)控,每隔3秒獲取系統(tǒng)內(nèi)存,當(dāng)內(nèi)存超過設(shè)定的警報值時,獲取所有進(jìn)程占用內(nèi)存并發(fā)出警報聲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06

最新評論

西吉县| 北川| 贵南县| 庆阳市| 松桃| 阳原县| 五大连池市| 准格尔旗| 额尔古纳市| 仁化县| 高密市| 安远县| 长汀县| 苏尼特左旗| 香河县| 墨玉县| 新野县| 杭锦后旗| 西贡区| 个旧市| 玉山县| 望奎县| 平定县| 雅安市| 奉贤区| 黑水县| 通榆县| 西乌| 安多县| 桦甸市| 罗定市| 基隆市| 泰州市| 蓝山县| 离岛区| 大宁县| 商丘市| 简阳市| 岗巴县| 尚志市| 南丰县|