为什么这些变量名称有问题?
Why are those names of variables problematic?
如果我在下面的程序中调用 L,我会收到错误消息(类型错误:'sage.rings.integer.Integer' 对象不可调用)。
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 吗?
问题是编译器认为 N (..)
是您传递给函数 L
的参数 N
。
不要忘记您可以将函数作为参数传递给其他函数。
在你的例子中,传递的 N
是一个整数,当编译器尝试 运行 N (..)
(又名调用它,因此你的错误)它坏了,因为你不能对数字这样做。
希望对您有所帮助。
如果我在下面的程序中调用 L,我会收到错误消息(类型错误:'sage.rings.integer.Integer' 对象不可调用)。
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 吗?
问题是编译器认为 N (..)
是您传递给函数 L
的参数 N
。
不要忘记您可以将函数作为参数传递给其他函数。
在你的例子中,传递的 N
是一个整数,当编译器尝试 运行 N (..)
(又名调用它,因此你的错误)它坏了,因为你不能对数字这样做。
希望对您有所帮助。