プロパティデコレータは、コールを取得し、クラスのインスタンスのセットを簡素化

例えば、結果を得るための方法をGET、setメソッドを使用してデータ機能を設定する一般的な工場:

1  からコレクションをインポートnamedtuple
 2つの 
3  クラス:ノード(オブジェクト)
 4      デフ __init__ (自己、getIp):
 5          self.nodes = なし
 6          self.node = なし
 7          self.getIp = getIp
 8  
9      デフsetNodes(自己、ノード)。
 10          self.nodesの= ノード
 11  
12      DEF getNode(自己):
 13           I self.nodes:
 14              であれば i.ip == self.getIp。
15                  self.node = I
 16                  休憩
17          戻りself.node
 18  
19  なら __name__ == " __main__ " 20      myOpt = namedtuple(' ノード'' IPポートユーザー' 21個の      ノード= [
 22          myOpt(' 192.168.1.1 '、22、' ゲスト' )、
 23          myOpt(' 192.168.1.2 '、22、'ゲスト' )、
 24      ]
 25      MYNODE =ノード(' 192.168.1.1 26      myNode.setNodes(ノード)
 27      プリント(myNode.getNode())

両方の取得および設定方法は、より多くのクラスのセットを取得関数法として、互いに独立して、さらなる欠点に対応しない、読み取りに助長されていません

プロパティ:

1  からコレクションをインポートnamedtuple
 2つの 
3  クラス:ノード(オブジェクト)
 4      デフ __init__ (自己、getIp):
 5          self.nodes = なし
 6          self.node = なし
 7          self.getIp = getIp
 8  
9      @property
 10      DEF getNodes(自己) :
 11          のためにself.nodes:
 12              であれば == i.ip :self.getIp
 13                  self.node = I
 14                  ブレーク
15          リターンself.node
 16  
17      getNodes.setter @
 18      DEF getNodes(自ノード):
 19          self.nodes =のノード
 20  
21  なら __name__ == " __main__ " 22      myOpt = namedtuple(' ノード'' IPポートユーザー' 23個の      ノード= [
 24          myOpt(' 192.168.1.1 '、22、' ゲスト' )、
 25         myOpt(' 192.168.1.2 '、22、' ゲスト' )、
 26      ]
 27      MYNODE =ノード(' 192.168.1.1 ' 28      myNode.getNodes =のノード
 29      プリント(myNode.getNodes)

設定と同じ方法で対応するメソッドの名前、コールの同じ設定データの取得結果およびメソッド名を取得します

おすすめ

転載: www.cnblogs.com/hell-west-road/p/11334518.html