为什么我的方法操作符返回none

时间:2017-04-25 05:56:33

标签: python

我写了一个多项式类并且遇到了我的getitem运算符问题 这是我的getitem的代码:

def __getitem__(self, idx):
        for i in range(len(self.coeffs)):
            if self.coeffs[i][1] == idx:
                return (self.coeffs[i][0])
                break

这是我的测试代码:

 for i in range(P1.degree() + 1):
            if P1[i] != 0:
                print(P1[i], end = " ")

多项式是6x ^ 14 + 9x ^ 11-12x ^ 3 + 42并且它返回所有非零系数但是我得到这样的输出

42 None None -12 None None None None None None None 9 None None 6 

所以我的问题是我怎么才能只展示系数,为什么没有出现呢?

1 个答案:

答案 0 :(得分:0)

你可以试试  返回0 在函数 getitem 的末尾,以防止它返回None,而是返回值0.

这将检查"如果P1 [i]!= 0:"在测试代​​码中评估为false,其中“无”现在出现的值为“无”'价值不会被打印。