亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

一. 方便但不完美的__dict__

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

比如:

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

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

{gender: 'male'}

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

二. 使用dict

使用dict的方式如下, 如果直接使用會(huì)報(bào)錯(cuò).

a = A()
dict(a)

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

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

因此只需要在一例中添加兩個(gè)方法就可以使對(duì)象可以通過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)對(duì)實(shí)例化對(duì)象使用dict(obj)的時(shí)候, 會(huì)調(diào)用這個(gè)方法,這里定義了字典的鍵, 其對(duì)應(yīng)的值將以obj['name']的形式取,
    但是對(duì)象是不可以以這種方式取值的, 為了支持這種取值, 可以為類增加一個(gè)方法'''
    return ('name', 'age', 'gender')
  def __getitem__(self, item):
    '''內(nèi)置方法, 當(dāng)使用obj['name']的形式的時(shí)候, 將調(diào)用這個(gè)方法, 這里返回的結(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)典教程

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

相關(guān)文章

  • pandas數(shù)據(jù)分列實(shí)現(xiàn)分割符號(hào)&固定寬度

    pandas數(shù)據(jù)分列實(shí)現(xiàn)分割符號(hào)&固定寬度

    數(shù)據(jù)分列在數(shù)據(jù)處理中很常見,數(shù)據(jù)分列一般指的都是字符串分割,本文主要介紹了pandas數(shù)據(jù)分列實(shí)現(xiàn)分割符號(hào)&固定寬度,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • Python設(shè)計(jì)模式之組合模式原理與用法實(shí)例分析

    Python設(shè)計(jì)模式之組合模式原理與用法實(shí)例分析

    這篇文章主要介紹了Python設(shè)計(jì)模式之組合模式,結(jié)合具體實(shí)例形式分析了Python組合模式的相關(guān)概念、原理、定義及使用方法,需要的朋友可以參考下
    2019-01-01
  • python入門while循環(huán)語句理解學(xué)習(xí)

    python入門while循環(huán)語句理解學(xué)習(xí)

    這篇文章主要介紹了python入門while循環(huán)語句理解學(xué)習(xí),文中附含詳細(xì)圖文示例教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • Python語言規(guī)范之Pylint的詳細(xì)用法

    Python語言規(guī)范之Pylint的詳細(xì)用法

    Pylint 是一個(gè) Python 代碼分析工具,它分析 Python 代碼中的錯(cuò)誤,查找不符合代碼風(fēng)格標(biāo)準(zhǔn)(Pylint 默認(rèn)使用的代碼風(fēng)格是 PEP 8)和有潛在問題的代碼,接下來通過本文給大家介紹Python Pylint的使用,感興趣的朋友一起看看吧
    2021-06-06
  • 對(duì)python中array.sum(axis=?)的用法介紹

    對(duì)python中array.sum(axis=?)的用法介紹

    今天小編就為大家分享一篇對(duì)python中array.sum(axis=?)的用法介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python內(nèi)存映射文件讀寫方式

    Python內(nèi)存映射文件讀寫方式

    這篇文章主要介紹了Python內(nèi)存映射文件讀寫方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 解決ModuleNotFoundError: No module named ‘flask._compat的問題

    解決ModuleNotFoundError: No module named ‘

    這篇文章主要介紹了解決ModuleNotFoundError: No module named ‘flask._compat的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python繪制3D立體花朵示例詳解

    Python繪制3D立體花朵示例詳解

    情人節(jié)送玫瑰花千篇一律?本文將為大家介紹利用Python繪制多種3D立體花朵的示例代碼,讓女友感受一下程序員的浪漫!快來跟隨小編一起學(xué)習(xí)一下吧
    2021-12-12
  • python環(huán)境中的概念conda中與環(huán)境相關(guān)指令操作

    python環(huán)境中的概念conda中與環(huán)境相關(guān)指令操作

    這篇文章主要介紹了python環(huán)境中的概念conda中與環(huán)境相關(guān)指令操作,虛擬環(huán)境是從電腦獨(dú)立開辟出來的環(huán)境,文章介紹了相關(guān)概念,需要的朋友可以參考下
    2023-03-03
  • scrapy-redis的安裝部署步驟講解

    scrapy-redis的安裝部署步驟講解

    今天小編就為大家分享一篇關(guān)于scrapy-redis的安裝部署步驟講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02

最新評(píng)論