命名参数与传递给它们的变量相同?

Naming parameters the same as the variable passed to them?

如果我将函数的参数命名为与我将传递给它们的变量相同的名称,是否有任何规则(或者我会 运行 遇到任何问题)? 例如 Python:

def foo(param):
    pass

param = 2

foo(param)

在我完成的相当有限的编程中,我没有运行遇到任何问题。我会遇到某些语言的问题吗?可以这样做,还是应该避免这种做法?

在这种特殊情况下,"problem" 是函数参数名称将隐藏外部 param 变量;即你不能(隐含地)引用全局 param 因为在你的函数内部 param 被定义为局部变量。

但是,这确实是应该的。你的函数应该只关心它在本地声明的参数,而不是隐式全局变量。相反,函数的调用者不必担心函数内部发生的任何事情。将变量命名为与函数参数相同的名称对调用者没有影响,对函数本身也没有影响。

所以,不,这里绝对没有问题。