首页 > 解决方案 > 如何读取函数的多种形式的属性?

问题描述

我需要为多项式函数加载属性,但它以不同的形式加载。

在作业中,我有 3 个表单值,但我不知道如何阅读所有这些值。其中一个作为 list() 输入,下一个作为元素输入,最后一个通过多项式的多个次数输入(这对我来说是最大的问题)。

p1 = Polynomial([1,-3,0,2])
p2 = Polynomial(1,-3,0,2)
p3 = Polynomial(x0=1,x3=2,x1=-3)
>>> print(*p*)
2x^3 - 3x + 1

我已经尝试过一些想法,例如:

class Polynomial(object):
    def __init__(self,*X):
        self.x = X
    def __str__(self):
        index = 0
        while True:
            element = element+self.x[index]+"x^"+index

但那不是第三种情况,也不适用于第一种和第二种情况。

标签: pythonpolynomials

解决方案


使用

def __init__(self, *args, **kwargs):
    self.args = args
    self.kwargs = kwargs

在第一种情况下,args将包含[[1,-3,0,2]](所以你想操纵args[0]

在第二种情况下,args将包含[1,-3,0,2]

在最后一种情况下,kwargs将包含{ x0: 1, x3: 2, x1: -3 }

在最后一种情况下,要翻译kwargs成您想要的列表(IE [1,-3,0,2]),您可以这样做

[kwargs.get("x0", 0), kwargs.get("x1", 0), kwargs.get("x2", 0), kwargs.get("x3", 0)]

这将为您提供kwargs您想要的正确键值的列表,如果未找到,则为 0。(更好的方式[kwargs.get(x, 0) for x in ["x0","x1","x2","x3"]]:)


推荐阅读