概要__ __str(出力をカスタマイズ)と__reprの__()と__formatの__()を使用して、

A:__str __()と__repr __()保存方法:

1  クラスDemoClass:
 2      DEF  __init__ (自己、名前、年齢):
 3          self.name = 4          self.age = 年齢
 5  
6      DEF  __str__ (自己):
 7          プリント() - >调它
8          リターン 名: {}、年齢:{} " .format(self.name、self.age)
 9  
10  
11  なら __name__ == " __main__ " 12      デモ= DemoClass(" トム"、18 13     印刷(デモ)#この時点でコールがデモ.__ STR __(ある)  
 14      なしオーバーライド__strの__の場合(<。0x00000238B1D6FBE0 AT __メイン__ DemoClassオブジェクト>が出力される)
15は、 '' ' 
16      :出力
 。17      名前:トム、年齢: 18がある
 さ18  『』 '

 

__repr __()メソッドは、スペアタイヤを保持することです。

1  クラスDemoClass:
 2      DEF  __init__ (自己、名前、年齢):
 3          self.name = 4          self.age = 年齢
 5  
6      DEF  __repr__ (自己):
 7          プリント() - >调它
8          リターン 名: {}、年齢:{} " .format(self.name、self.age)
 9  
10      DEF  __str__ (自己):
 11          リターン " 名:{}、年齢:{} .format(self.name、self.age )
 12  
13  なら __name__ == "__main__ " 14      デモ= DemoClass(" トム"、18である15      プリント(デモ)
 16      
。17  '' ' 
18で     出力:
 19      名:トム、年齢:18は
 20である     
21である     結果は、プリント()呼び出し配列である:
 22である     プリント() - > STR() - >デモ.__ STR __() - >デモ.__のreprの__() 
    しかし、__のreprの__()インタラクティブな環境での使用に適した!
23 '' '

それでも、これらの2つの方法は、戻り値の文字列型を保持しなければなりません。

2:__カスタム書式ウェイ__format()

format()メソッドは、(実際に転送__formatの__です) 

1 format_dict = {
 2      ' YMD '" {} {0.mon 0.year 0.day} {} " 3。     ' Y:M:D '" {} 0.year:0.mon {}:{ } 0.day " 4 ' YMD '" {} 0.year - 0.mon} { - } {0.day 5。 0は、自クラスのインスタンスオブジェクトを表す6 }
          
  7つの。 クラスDemoClass:
 8。     DEF  __init__ (セルフ、年、月、日):
 9          self.year =今年
 10         self.mon = 11          self.day = 12  
13      DEF  __format__ (自己、キー):
 14          リターンformat_dict [キー] .format(自己)
 15  
16  
17  なら __name__ == " __main__ " 18      デモ= DemoClass(2019、 8、6 19      プリント(フォーマット(デモ、' YMD ' ))
 20      プリント(フォーマット(デモ、' Y:M:D ' ))
 21      プリント(フォーマット(デモ、' YMD' ))
 22  ' '' 
23      の出力      
 24      2019年8 6
 25      6:2019 8:
 26である、     2019年8月6日
 27  ' ''

 

おすすめ

転載: www.cnblogs.com/zach0812/p/11310823.html