python 计算倒数代码
class Expr: def __add__(self, other): return Plus(self, other) def __mul__(self, other): return Times(self, other) class Int(Expr): def __init__(self, n): self.n = n def d(self, v): return Int(0) def __str__(self): return `self.n` class Var(Expr): def __init__(self, var): self.var = var def d(self, v): return Int(self.var == v and 1 or 0) def __str__(self): return self.var class Plus(Expr): def __init__(self, a, b): self.e1 = a self.e2 = b def d(self, v): return Plus(self.e1.d(v), self.e2.d(v)) def __str__(self): return "(%s + %s)" % (self.e1, self.e2) class Times(Expr): def __init__(self, a, b): self.e1 = a self.e2 = b def d(self, v): return Plus(Times(self.e1, self.e2.d(v)), Times(self.e1.d(v), self.e2)) def __str__(self): return "(%s * %s)" % (self.e1, self.e2) if __name__ == "__main__": x = Var("x") a = Var("a") b = Var("b") c = Var("c") e = a * x * x + b * x + c print "d(%s, x) = %s" % (e, e.d("x"))