我正在编写一个 Python 脚本来解析一些数据。目前我正在尝试创建一个创建“占位符”对象的类。我打算反复传递每个“占位符”变量,最后把它变成一个字典、浮点数、列表或字符串。由于需要一段时间来描述的原因,如果我可以通过调用方法来替换实例会容易得多。
这是一个简化的例子
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' 变成一个浮点数。
我希望避免的是:
e = Event()
e.augmentA( 1 )
e.augmentA( 2 )
e = e.getSealedValue()
我完全理解我的“密封”方法中的“自我”只是一个局部变量,不会对范围外的实例产生任何影响。但是,我不确定如何从实例中实现我想要的,这对我的代码来说最方便。我也明白我可以覆盖所有的内置插件(getItem,toStr),但这会使我的代码复杂化很多。
我是一个 Python 菜鸟,所以我不确定这是否可能。请放纵我:)