雙下方法
__repr__ __str__
__str__方法 必然返回字串
『%s』%(物件) print(str(a)) print(直接列印物件)都是走類中__str__
%r repr() 實際上都是走repr
repr
class
a:
def__str__
(self):
return
'父類str列印中
' #如果是數字類的 需要str(1) 再返回
def__repr__
(self):
return
'父類repr列印中
'class
b(a):
def__str__
(self):
return
'子類str列印中
'def
__repr__
(self):
return
'子類repr列印中
'a =b()
print('
%s'%(a)) #
子類str列印中
print(a) #
子類str列印中
print(str(a)) #
子類str列印中
print('
%r'%(a)) #
子類repr列印中
print(repr(a)) #
子類repr列印中
如果子類中沒有__str__就先用父類的str 父類沒有str就先用子類的reprclass
a:
def__str__
(self):
return
'父類str列印中
'def
__repr__
(self):
return
'父類repr列印中
'class
b(a):
def__repr__
(self):
return
'子類repr列印中
'a =b()
print('
%s'%(a)) #
父類str列印中
(str(a))
class
a:
def__repr__
(self):
return
'父類repr列印中
'class
b(a):
def__repr__
(self):
return
'子類repr列印中
'a =b()
print('
%s'%(a)) 子類repr列印中
class
a:
def__repr__
(self):
return
'父類repr列印中
'class
b(a):
pass
a =b()
print('
%s'%(a)) 父類repr列印中
__del__ 如果直接執行del方法是 例如刪除乙個物件 他會將連帶的 物件.f = open() 一塊刪除 但實際上改檔案並沒有關掉,所以需要用到__del__方法 在del時就會呼叫類中的__del__
此時將 關閉檔案的操作放到下面 變成先關閉檔案再刪除物件,完美解決
classa:
def__del__
(self):
print('
aaa'
) self.f.close()
a =a()
a.f = open('
y.py')
del a
__call__
乙個物件加上() a()就會執行__call__方法下面的功能,此方法適用於給程式新增一些小功能 簡化了**
__len__
classa:
def__init__
(self,classes):
self.classes =classes
self.names =
def__len__
(self):
return
len(self.names)
a = a('
xioming')
'ergou')
'ergou')
'ergou')
'ergou')
(len(a))
(a.names)
print(a.classes)
流程定製的小結
乙個完整的工作流管理系統,我們有了工作流建模工具,工作流引擎,工作監控工具等等,基於此我們發現開發一套比較通用的應用,還是有一定的難度。其中還多東西都是比較死的,當我們在開發乙個新的應用時又要重新開始,可重用性比較差。再有作為乙個產品的話,易用性存在很大的問題。我們需要的是乙個工具,在流程模型建好並...
RuleWizard規則定製小結
一般情況下顯示某乙個節點的資訊,右擊該節點可以檢視節點的相應屬性資訊 例如name,value等 此時就可以利用這些屬性名稱輸出相應的資訊。顯示name name 顯示value value 顯示type type 顯示line line 在需要統計個數的節點新增乙個collector,並且給乙個l...
python定製 python中定製類
1 python中 str 和repr 如果要把乙個類的例項變成 str,就需要實現特殊方法 str classperson object def init self,name,gender self.name name self.gender genderdef str self return p...