我用Python编写了一个用于计算的类,它看起来像:
default = {…}
class Case(object):
def __init__(self, name, wt, wd, ft, bc, burnup, cr_state):
self.name = name
self.burnup = burnup
self.infn = 'fa-'+faType+'-'+str(self.burnup)+'-'+self.name
self.data = default
self.data['caseName'] = name
self.data['water-temp'] = str(wt)
self.data['water-den'] = str(wd)
self.data['fuel-temp'] = str(ft)
self.data['boron-con'] = str(bc)
self.cr_state = cr_state
self.data['cr_state'] = cr_state
self.data['burnup'] = str(burnup)
实际上,它实现了更多的方法,但这应该足以说明。你知道吗
问题是,当我尝试创建这个类的不同实例时,它们的属性是相同的,比如:
basis = Case('basis', 578.0, 0.71614, 578.0, 0.00105, 0, 'empty')
wt450 = Case('wt450', 450.0, 0.71614, 578.0, 0.00105, 0, 'empty')
在这之后如果我检查一下:
print basis.data == wt450.data
它返回True
。问题的根源在哪里?你知道吗
像jornsharpe states的注释一样,您可以用`口述副本方法。你知道吗
或者,如果要保持值与默认值同步,可以创建一个方法,从实例中获取值,如果找不到值,则使用默认dict上的值。该方法如下所示:
相关问题 更多 >
编程相关推荐