attr包含三個函式
getattr,setattr,delattr
setattr:新增/修改屬性會觸發它的執行
delattr:刪除屬性的時候會觸發
getattr:只有在使用點屬性且屬性不存在的時候才會觸發
class student:
def __init__(self,name,age,classroom):
self.name =name
self.age=age
self.classroom =classroom
def __getattr__(self, item):
print("我沒找到這個屬性%s"%item)
def __setattr__(self, key, value):
print("我需要為變數%s設定這個值%s,但是利用的是__dict__字典"%(key,value))
self.__dict__[key]=value
def __delattr__(self, item):
print("我需要刪除這個屬性拉%s,利用的也是self__dict__字典"%item)
self.__dict__.pop(item,"找到這個屬性,沒法刪除拉")
s1 = student("grace",20,102) #例項化物件,
print(s1.age) #呼叫age屬性
print(s1.ge) #呼叫ge屬性
s1.num = 87 #新增乙個num屬性冰賦值為87
print(s1.num) #呼叫s1.num,檢視結果
del s1.num #刪除s1的num屬性
print(s1.num) #檢視呼叫s1的num屬性
執行結果
我需要為變數name設定這個值grace,但是利用的是__dict__字典
我需要為變數age設定這個值20,但是利用的是__dict__字典
我需要為變數classroom設定這個值102,但是利用的是__dict__字典
20我沒找到這個屬性ge
none
我需要為變數num設定這個值87,但是利用的是__dict__字典
87我需要刪除這個屬性拉num,利用的也是self__dict__字典
我沒找到這個屬性num
none
類的內建attr屬性
class foo x 1 definit self,y self.y y def getattr name print getattr 執行 def delattr self,item print delattr 執行 def setattr self,key,value self.key val...
Jquery系列 prop和attr區別
問題描述 由於prop property的縮寫 和attr attribute的縮寫 翻譯成漢語,均有 特性 屬性 等意思的原因,導致大家容易混淆分不清,本篇文章將試圖從英文含義,中文含義和jquery含義三個方面,徹底將它們區分開來。1 內容區 1.1 在英文中的理解 1 atrr attr是at...
jQuery中attr 的使用
用法一 選擇器 attr 屬性名 它的作用就是獲取指定元素 選擇器 部分 的指定屬性的值.看例子 有這樣一段html 那麼你要獲取到的位址該怎麼辦呢?這樣 img attr src 就這麼簡單,你用alert或者其它形式輸出一下就看到的位址了.那麼我要取得的描述呢?這樣 img attr alt 夠...