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

Python類中方法getitem和getattr詳解

 更新時間:2019年08月30日 14:46:51   作者:JasonMingHao  
這篇文章主要介紹了Python類中方法getitem和getattr詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下

1、getitem 方法

使用這個方法最大的印象就是調(diào)用對象的屬性可以像字典取值一樣使用中括號['key']

使用中括號對對象中的屬性進行取值、賦值或者刪除時,會自動觸發(fā)對應(yīng)的__getitem__、__setitem__、__delitem__方法

代碼如下:

class Foo(object):
  def __init__(self):
    self.name = 'jack'

  def __getitem__(self,item):
    if item in self.__dict__:    # item = key,判斷該key是否存在對象的 __dict__ 里,
      return self.__dict__[item] # 返回該對象 __dict__ 里key對應(yīng)的value

  def __setitem__(self, key, value):
    self.__dict__[key] = value   # 在對象 __dict__ 為指定的key設(shè)置value

  def __delitem__(self, key):
    del self.__dict__[key]     # 在對象 __dict__ 里刪除指定的key

f1 = Foo()
print(f1['name'])  # jack
f1['age'] =10    
print(f1['age'])  # 10
del f1['name']
print(f1.__dict__) # {'age': 10}

2、getattr 方法

使用對象取值、賦值或者刪除時,會默認的調(diào)用對應(yīng)的__getattr__、__setattr__、__delattr__方法。

對象取值時,取值的順序為:先從object里__getattribute__中找,第二步從對象的屬性中找,第三步從當前類中找,第四步從父類中找,第五步從__getattr__中找,如果沒有,直接拋出異常。

代碼如下:

class Foo(object):
  def __init__(self):
    self.name = 'jack'

  def __getattr__(self, item):
    if item in self.__dict__:
      return self.__dict__[item]

  def __setattr__(self, key, value):
    self.__dict__[key] = value

  def __delattr__(self, item):
    del self.__dict__[item]

c1 = Foo()
print(c1.name) # jack
c1.age = 18
print(c1.age)  # 18
del c1.age   # 刪除 對象c1的age
print(c1.age)  # None

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python發(fā)送郵件的幾種方式(最全總結(jié)!)

    Python發(fā)送郵件的幾種方式(最全總結(jié)!)

    發(fā)送電子郵件是個很常見的開發(fā)需求,平時如果有什么重要的信息怕錯過,就可以發(fā)個郵件到郵箱來提醒自己,這篇文章主要給大家介紹了關(guān)于Python發(fā)送郵件的幾種方式,需要的朋友可以參考下
    2024-03-03
  • elasticsearch python 查詢的兩種方法

    elasticsearch python 查詢的兩種方法

    這篇文章主要介紹了elasticsearch python 查詢的兩種方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • 用什么庫寫 Python 命令行程序(示例代碼詳解)

    用什么庫寫 Python 命令行程序(示例代碼詳解)

    這篇文章主要介紹了用什么庫寫 Python 命令行程序,這一篇文章給大家介紹的非常詳細全面看這一天足夠了,需要的朋友可以參考下
    2020-02-02
  • Python關(guān)于維卷積的理解

    Python關(guān)于維卷積的理解

    這篇文章主要介紹了Python關(guān)于維卷積的理解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 用Python爬取指定關(guān)鍵詞的微博

    用Python爬取指定關(guān)鍵詞的微博

    這篇文章主要介紹了用Python爬取指定關(guān)鍵詞的微博,下面文章圍繞Python爬取指定關(guān)鍵詞的微博的相關(guān)資料展開詳細內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • python字符串替換的2種方法

    python字符串替換的2種方法

    python 字符串替換 是python 操作字符串的時候經(jīng)常會碰到的問題,這里簡單介紹下字符串替換方法
    2014-11-11
  • 深入理解Python異常處理的哲學(xué)

    深入理解Python異常處理的哲學(xué)

    這篇文章主要給大家介紹了關(guān)于Python異常處理的哲學(xué),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2019-02-02
  • Python Pandas找到缺失值的位置方法

    Python Pandas找到缺失值的位置方法

    下面小編就為大家分享一篇Python Pandas找到缺失值的位置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python3 常見解密加密算法實例分析【base64、MD5等】

    python3 常見解密加密算法實例分析【base64、MD5等】

    這篇文章主要介紹了python3 常見解密加密算法,結(jié)合實例形式分析了Python的base64模塊加密,以及基于pycrypto模塊的MD5加密等相關(guān)操作技巧,需要的朋友可以參考下
    2019-12-12
  • Python簡單計算數(shù)組元素平均值的方法示例

    Python簡單計算數(shù)組元素平均值的方法示例

    這篇文章主要介紹了Python簡單計算數(shù)組元素平均值的方法,涉及Python簡單數(shù)組遍歷與數(shù)學(xué)運算相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12

最新評論

汨罗市| 金塔县| 娱乐| 绥江县| 荃湾区| 齐齐哈尔市| 青岛市| 河曲县| 元氏县| 上饶县| 罗甸县| 松江区| 集安市| 文登市| 东乡| 绥中县| 绍兴县| 鹤峰县| 石门县| 延川县| 海林市| 高青县| 栖霞市| 玉龙| 武宣县| 长垣县| 崇礼县| 鹿邑县| 新泰市| 安平县| 行唐县| 贺州市| 青岛市| 响水县| 冀州市| 屏南县| 天峨县| 逊克县| 波密县| 通辽市| 丰县|