如何为我的班级构造多项式序列?

时间:2019-06-09 00:25:42

标签: python python-3.x class oop

对于一个作业,我创建了一个类来表示多项式,方法是将一个列表及其系数存储为类的数据成员。

  • 列表的第一个元素(索引0)代表常量;
  • 第二个(索引1)表示x项的系数,依此类推,
  • 每个下一个元素代表多项式下一个幂的系数。

尽管我在为其创建"polySequence"的最后一个功能时遇到困难:

  

polySequence函数,它采用开始,结束和步骤,并返回生成器。生成器将评估多项式的​​值   开始,然后开始+结束,依此类推,直到结束并产生这些值1   一次。如果未给出任何步骤,则应使用步骤1(类似于   范围法)。例如,如果p代表多项式2x +1   (系数列表[1,2]),代码

for val in p.polySequence(0,5):
    print(val)

应在单独的行上打印值1、3、5、7和9。

下面是我对多序列的实现:

2 个答案:

答案 0 :(得分:0)

您似乎只将第一个参数传递给polySequence函数。您应该传递所有声明的参数(开始,停止和步进):

p = Polynomial(1, 2)
for val in p.polySequence(0, 5, 1):
    print(val)

答案 1 :(得分:0)

您访问polySequence方法的方式不正确。这样只能调用静态或类方法。您需要实例化该类,然后调用polySequence方法。例如

obj = Polynomial(1, 2)
for res in obj.polySequence(0, 5, 1):
    print(res)

我还能看到 start 变量在polySequence方法中的代码中始终被覆盖。如果是这样,为什么要在方法中 start 自变量?