我想在python中创建一个结构,就像在C中一样。我试过使用namedtuple()。但是,我无法更新我在自定义结构中描述的变量值。 以下是我宣布的方式:
from collections import namedtuple as nt
Struct = nt('Struct','all left right bottom top near far')
这就是我想用方法做的事情:
class codeClip:
def compOutCode(x,y,z,xmin,xmax,ymin,ymax,zmin,zmax):
code = Struct(0,0,0,0,0,0,0)
if(y > ymax):
code.top = 1
code.all += code.top
elif(y < ymin):
code.bottom = 1
return code
但是它给出了这个错误:
code.top = 1 AttributeError:无法设置属性
我该怎么办?对不起,我在python中相当新,所以仍然习惯了所有这些。
答案 0 :(得分:3)
您可以使用_replace()
方法。
您可以按如下方式更新值,而不是code.top = 1
。
code = code._replace(top = 1)
请注意,命名元组是不可变的,因此您无法操纵它们。如果你想要一些可变的东西,你可以使用recordtype
。