一部のデータを解析する Python スクリプトを作成しています。現時点では、「プレースホルダー」オブジェクトを作成するクラスを作成しようとしています。各「プレースホルダー」変数を繰り返し渡し、最終的にそれをdict、float、list、または string に変換するつもりです。説明するには時間がかかるため、メソッドを呼び出してインスタンスを置き換えることができれば、はるかに簡単になります。
簡単な例を次に示します
class Event( dict ):
def __init__( self ):
self.sumA = 0.0
self.sumB = 0.0
def augmentA( self, i ):
self.sumA += i
def augmentB( self, i ):
self.sumB += i
def seal( self ):
if self.sumA != 0 and self.sumB != 0:
self = [ sumA, sumB ]
elif self.sumA != 0:
self = float( sumA )
elif self.sumB != 0:
self = float( sumB )
そして、私がやりたいことは次のとおりです。
e = Event()
e.augmentA( 1 )
e.augmentA( 2 )
e.seal()
...そして 'e' を float に変えます。
私が避けたいのは:
e = Event()
e.augmentA( 1 )
e.augmentA( 2 )
e = e.getSealedValue()
「seal」メソッドの「self」は単なるローカル変数であり、スコープ外のインスタンスには影響しないことを完全に理解しています。ただし、コードにとって最も便利なインスタンス内から、必要なものをどのように達成するかはわかりません。また、すべてのビルトイン ( getItem、toStr )をオーバーライドできることも理解していますが、それによってコードが非常に複雑になります。
私はPython初心者なので、これが可能かどうかはわかりません. 私を甘やかしてください:)