中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

安徽省| 双桥区| 绥中县| 清原| 万山特区| 兴海县| 兴业县| 时尚| 天水市| 嘉义市| 蓬莱市| 永川市| 沙河市| 溧水县| 广河县| 墨脱县| 陵川县| 山丹县| 宁乡县| 澄迈县| 利辛县| 南雄市| 南澳县| 新乡市| 连城县| 红河县| 吐鲁番市| 赤峰市| 镇宁| 体育| 从化市| 平遥县| 石阡县| 涪陵区| 大宁县| 葵青区| 克什克腾旗| 黄冈市| 麦盖提县| 扬州市| 万宁市|