我正在写一个Python脚本来解析一些数据。此刻,我正在尝试创建一个创建“占位符”对象的类。我打算反复传递每个“占位符”变量,最后将它变成一个字典,浮点,列表或字符串。由于需要一段时间才能描述的原因,如果我可以通过调用方法来替换实例,那将会容易得多。用实例方法中的float替换实例?
这里有一个简单的例子
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 noob,所以我不确定这是否可能。放纵我,请:)
对于无聊的问题,我表示歉意,顺便说一句,我完全理解* that *视角的观点。虽然我不明白投票“关闭”!这是一个通用的问题,但不容易通过阅读文档来回答 - 我使用的代码在这里,因为不使用代码很难解释。 – username 2012-08-12 04:47:57
我不能说谁投票决定关闭它,但它看起来像是一个写得很好的建设性问题,所以我只是假设某人心情不好,并且没有仔细阅读这个问题或仔细阅读这个问题帮助改善它。 ;-) – Jordan 2012-08-12 05:04:52
废话,现在因为我的抱怨而上升。停下来! Downvotes很好,可能是有保证的,请不要关闭它 – username 2012-08-12 05:07:45