Python:如何选择表格中某行的值(存储在矢量中)?

时间:2019-02-28 15:07:12

标签: python

我是Python的新手,我必须制作一张桌子。我必须一次选择一个表行,具体取决于所需的选择。每行由三个值组成。然后,将后者的值用于其他方程式。问题是运行代码时无法在表行之间切换。有人可以帮助我吗? 预先感谢。

下面是代码:

D是一条特定的表格行,默认情况下,所选的行称为D

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)  

运行代码时,我选择名称为H的行

cat ='H'#行H

print('Table csi:',test_glass.Table_csi())

D行中存储的默认值为什么没有更改?

表csi:[0.7、0.7、0.6]

2 个答案:

答案 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]