我不理解代码中星号的用法

时间:2019-05-21 15:58:25

标签: python

我是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)

0 个答案:

没有答案