亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

大化| 五指山市| 潞城市| 苗栗县| 临颍县| 昌都县| 勐海县| 延川县| 内江市| 龙岩市| 石狮市| 阳城县| 汉中市| 英德市| 孝义市| 苗栗市| 衡南县| 台东县| 密山市| 三台县| 阿荣旗| 浮梁县| 丰都县| 台东市| 垣曲县| 许昌县| 长兴县| 合肥市| 铁岭市| 盘锦市| 图们市| 稻城县| 胶州市| 铜山县| 靖宇县| 托克逊县| 前郭尔| 喀喇| 茂名市| 绍兴市| 临泽县|