函数调用变量与函数相同

时间:2014-04-30 23:13:03

标签: python function variables return call

我对Python有点新手 - 初学者转向中级 - 并且想知道更有经验的Python程序员如何命名他们的调用和函数变量。

具体来说,我喜欢将呼叫变量命名为被叫函数' s' receive'变量。同样返回变量。

工作正常,但是在将来将变量更改为global之外,是否会遇到问题?

示例电话:v_Array = f_InitSpecified2DArray(v_Width,v_Length) 这个例子叫做或者接收'功能:def f_InitSpecified2DArray(v_Width, v_Length): 我也会在回报中做同样的事:return v_Array

def f_InitSpecified2DArray(v_Width, v_Length):
    v_Array = [v_Width, v_Length]
    return v_Array

v_Array = f_InitSpecified2DArray(v_Width,v_Length)

问题是:我希望在函数v_Array内部以及稍后在调用代码中重用名称return会导致任何冲突,并将其分配给具有相同名称的变量{{1 }}?

感谢。

2 个答案:

答案 0 :(得分:1)

不,这不会给您,您的读者或Python解释器带来困难,也不会造成混淆。当然,与仅仅与参数名称不同的新名称相比,它不那么令人困惑,这是不必要的。实际上,您经常会遇到与命名参数及其参数同时使用的相同名称,如

runner = DocTestRunner(verbose=verbose, optionflags=optionflags)

来自标准库中的doctest.py(适用于Python 3.3)。

在标准库中搜索这种模式是有益的,<name>=<same_name>(滥用符号,我会在一瞬间纠正),因为它的出现只是你要问的例子。在OS X和Linux上,以下命令将显示标准库(以及site-packages)中出现该模式的所有行:

grep -Er --include=*.py '(\b[[:alnum:]]+\b)=\1\b' /path/to/pythonlib

例如,在Mac上,Python 3.3的/path/to/pythonlib通常为/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3

此命令显示构造有多少行,其中许多行有多次出现:

grep -Er --include=*.py '(\b[[:alnum:]]+\b)=\1\b' /path/to/pythonlib | wc -l

我的计数为1129,其中包括我的site-packages子目录中的几十个。换句话说,这很常见。

答案 1 :(得分:0)

阅读PEP 008标题为&#34; Python Code样式指南&#34;

您似乎在寻找更精确,更系统的内容,我对此表示赞赏,但如果您尝试遵循PEP 008,那么您将为自己和处理代码的其他人付出很多努力和困惑。

像往常一样,你不会发现它随处可见,但这就是生活。

关于函数名称和变量的问题 - PEP 008建议使用小写名称,单词用下划线分隔。

局部变量名称无关紧要,用于return的变量名称无关紧要。

并且不要过早地将变量转移到全局范围,实际上你应该在另一个方向工作。