我是python的新手,所以如果有人可以解释为什么当星号(在__add__方法中)有效时,我将不胜感激
当我尝试使用星号(返回多项式(*(x + y为x,y为zip(self.coeffs,other.coeffs))))代码为我提供了预期输出是多项式((4,6,6)),但是当我在多项式之后删除星号时(返回多项式(x + y表示x,y在zip(自身)中返回。 coeffs,other.coeffs))它给了我一个生成器错误 [多项式((。at 0x7ffb2c6db258>,))。有人可以解释我这种方法的过程吗,它是否定义了一个新对象在课堂上,为什么星号很重要。感谢您的关注,祝您有个愉快的一天
class Polynomial:
def __init__(self, *coeffs):
self.coeffs = coeffs
def __repr__(self):
return 'Polynomial({!r})'.format(self.coeffs)
def __add__(self, other):
return Polynomial(*(x + y for x, y in zip(self.coeffs, other.coeffs)))
p1 = Polynomial(1, 2, 3)
p2 = Polynomial(3, 4, 3)
print(p1+p2)