python--內建屬性
阿新 • • 發佈:2018-01-21
redirect log tca init subject 自定義 att 說明 技術
一、常用內建屬性
常用專有屬性 | 說明 | 觸發方式 |
---|---|---|
__init__ |
構造初始化函數 | 創建實例後,賦值時使用,在__new__ 後 |
__new__ |
生成實例所需屬性 | 創建實例時 |
__class__ |
實例所在的類 | 實例.__class__ |
__str__ |
實例字符串表示,可讀性 | print(類實例),如沒實現,使用repr結果 |
__repr__ |
實例字符串表示,準確性 | 類實例 回車 或者 print(repr(類實例)) |
__del__ |
析構 | del刪除實例 |
__dict__ |
實例自定義屬性 | vars(實例.__dict__) |
__doc__ |
類文檔,子類不繼承 | help(類或實例) |
__getattribute__ |
屬性訪問攔截器 | 訪問實例屬性時 |
__bases__ |
類的所有父類構成元素 | 類名.__bases__ |
1.屬性攔截器的使用
class Itcast(object): def __init__(self,subject1): self.subject1 = subject1 self.subject2 = ‘cpp‘ #屬性訪問時攔截器,打log def __getattribute__(self,obj): if obj == ‘subject1‘:屬性攔截器的使用print(‘log subject1‘) return ‘redirect python‘ else: #測試時註釋掉這2行,將找不到subject2 return object.__getattribute__(self,obj) def show(self): print(‘this is Itcast‘) s = Itcast("python") print(s.subject1) print(s.subject2) #結果 log subject1 redirect python cpp
python--內建屬性