如果我在以下程序中调用L,则会收到错误消息(TypeError:' sage.rings.integer.Integer' object不可调用)。
def N(N,a,b,c):
return ...
def L(N,a,b,c):
print N(N,a,b,c)
如果我将L的定义更改为
def L(z,a,b,c):
print N(z,a,b,c)
我不再有问题了。有人可以解释为什么我不能调用第一个变量N?
答案 0 :(得分:1)
问题是编译器认为N (..)
是您传递给函数N
的参数L
。
不要忘记你可以将函数作为参数传递给其他函数。
在你的情况下,传递的N
是一个整数,当编译器尝试运行N (..)
(也就是调用它,因此你的错误)时它就坏了,因为你不能这样做是为了数字。
希望有所帮助。