91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python面向對象之類的內置attr屬性示例

發布時間:2020-08-21 13:57:12 來源:腳本之家 閱讀:123 作者:我是馬克思小清新 欄目:開發技術

本文實例講述了Python面向對象之類的內置attr屬性。分享給大家供大家參考,具體如下:

這個比較簡單。

代碼示例:

# -*- coding:utf-8 -*-
#! python3
class Foo:
  x = 1;
  def __init__(self,y):
    self.y = y;
  def __getattr__(self,item):
    print('----->from getattr:你找的屬性不存在')
  def __setattr__(self, key, value):
    print('----> from setattr')
    #self.key = value   
    # 正常思維設置,但是只要設置屬性就會觸發這個方法,從而進入死遞歸,
    # 所以考慮從字典的屬性入手修改屬性值。
    self.__dict__[key] = value
  def __delattr__(self,item):
    print('----->from delattr')
    #del self.item
    #這個也是同樣的道理,會進入死遞歸
    self.__dict__.pop(item)
#_setattr_添加/修改屬性會觸發它的執行
f1 = Foo(10)
print(f1.__dict__)  #因為你重寫了__setattr__,凡是賦值操作都會觸發它的運行,你啥都沒寫,就是根本沒賦值
           #除非你直接操作屬性字典,否則無法賦值 
f1.z = 3
print(f1.__dict__)
#__delattr__刪除屬性的時候會觸發
f1.__dict__['a'] = 3  #可以直接修改對象的屬性字典,來完成添加/修改屬性的操作
del f1.a
print(f1.__dict__)

運行結果:

----> from setattr
{'y': 10}
----> from setattr
{'y': 10, 'z': 3}
----->from delattr
{'y': 10, 'z': 3}
       
內置attr屬性有三個:__getattr__,___setattr__,__delattr__

如果不重寫,那么就用系統默認的。

更多關于Python相關內容可查看本站專題:《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》

希望本文所述對大家Python程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

光山县| 钟祥市| 苏尼特右旗| 尤溪县| 慈溪市| 山西省| 黔江区| 青田县| 会宁县| 梓潼县| 博湖县| 永安市| 新干县| 锦屏县| 大荔县| 多伦县| 庐江县| 湘潭市| 开封市| 合山市| 凤凰县| 遂宁市| 郧西县| 樟树市| 福鼎市| 太原市| 井冈山市| 聊城市| 荆州市| 福州市| 定南县| 香河县| 澄江县| 石阡县| 日照市| 桂林市| 黑山县| 佛冈县| 合川市| 冷水江市| 孟州市|