无法分配给函数调用(Python)

时间:2015-04-01 21:42:56

标签: python

我有以下代码:

class Quadratic:

    def __init__(self, a, b, c):
        self.a = a
        self.b = b
        self.c = c

    def function(self, x):
        self.F(x) = a*(x**2) + b*x + c
        return F(x)

    def table(self, lower, upper, varz):
        inc = np.absolute(upper-lower) / varz
        print inc
        for i in range(0 , varz - 1):
            self.F(lower)
            lower = lower + inc
        #lower bound,upper bound, number of values

    def roots():
        x1 = (-b + math.sqrt(b**2 - 4*a*c)) / (2*a)
        x2 = (-b - math.sqrt(b**2 - 4*a*c)) / (2*a)
        return x1, x2

    def dump(self):
        print self.n

每当我尝试运行此脚本时,我都会得到以下内容:

line 15
self.F(x) = a*(x**2) + b*x + c
SyntaxError: can't assign to function call

非常感谢任何帮助或想法。

3 个答案:

答案 0 :(得分:2)

目前尚不清楚(至少对我来说)你想要实现的目标,但也许就是这样简单:

def F(self, x):
    return self.a * (x ** 2) + self.b * x + c

答案 1 :(得分:1)

正如您可能已经猜到的那样,F(x)是一个函数调用。你正在调用实际上不存在的函数F,并将参数x传递给它,它实际上也不存在。您需要为变量提供合法的名称,例如f_of_x

答案 2 :(得分:1)

尝试:

def __init__(self, a,b,c):
    self.a = a
    self.b = b
    self.c = c
    self.F = lambda x: a*(x**2)+b*x+c

并丢弃function()方法