Shadows name 'xxx' from outer scope
def function_1(param_1):
print(param_1)
if __name__ == '__main__':
param_1 = "Mr.Wu"
function_1(param_1)
字面意思是指:函数内的形参名称与外部作用域的名称重合。
python
\text{python}
python的风格规范中,需要将形参变量与调用该形参的变量名进行区分。
正确示例如下:
def function_1(param_1):
print(param_1)
if __name__ == '__main__':
p_1 = "Mr.Wu"
function_1(p_1)
当然,调用函数形参的不一定是某个实参,可能是其他函数的形参。如:
def function_1(param_1):
def function_2(param_1):
print(param_1)
return function_2(param_1)
if __name__ == '__main__':
p_1 = "Mr.Wu"
function_1(p_1)
此时function_1
中的形参调用了function_2
中的形参param_1
,同样需要规避相同名称的问题。正确示例如下:
def function_1(pa_1):
def function_2(param_1):
print(param_1)
return function_2(pa_1)
if __name__ == '__main__':
p_1 = "Mr.Wu"
function_1(p_1)
Reference
\text{Reference}
Reference:
python - 风格规范