我是Python的新手,我必须制作一张桌子。我必须一次选择一个表行,具体取决于所需的选择。每行由三个值组成。然后,将后者的值用于其他方程式。问题是运行代码时无法在表行之间切换。有人可以帮助我吗? 预先感谢。
下面是代码:
class glass_load:
def __init__(self,cat='D'):
self.cat=cat
def Table_csi(self,):
if self.cat=='C' or self.cat=='D' or self.cat=='F':
csi=[0.7,0.7,0.6]
elif self.cat=='H':
csi=[0.0,0.0,0.0]
return(csi)
cat ='H'#行H
print('Table csi:',test_glass.Table_csi())
表csi:[0.7、0.7、0.6]
答案 0 :(得分:0)
创建猫的对象时,需要将cat作为“ H”传递给glass_load的构造函数:
test_glass = glass_load(cat='H')
您在类外部拥有的cat变量与在类内部拥有的cat变量不同,因此,为其分配任何值都不会影响您的结果。在Table_csi函数中,您访问了self.cat,它引用了类的自身cat变量,而不是外部变量。
答案 1 :(得分:0)
您应该处理'cat'不是C,D.F.H
的情况class GlassLoad:
def __init__(self, cat='D'):
self.cat = cat
def table_csi(self):
if self.cat in ['C', 'D', 'F']:
csi = [0.7, 0.7, 0.6]
elif self.cat == 'H':
csi = [0.0, 0.0, 0.0]
else:
csi = [-1, -1, -1]
return csi
glass_load1 = GlassLoad('H')
glass_load2 = GlassLoad('D')
glass_load3 = GlassLoad('Z')
print(glass_load1.table_csi())
print(glass_load2.table_csi())
print(glass_load3.table_csi())
输出
[0.0, 0.0, 0.0]
[0.7, 0.7, 0.6]
[-1, -1, -1]