函数调用变量与函数中的相同

2024-09-29 23:24:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python有点陌生--刚开始学习中级--我想知道更有经验的Python程序员如何命名他们的调用和函数变量。你知道吗

具体来说,我喜欢将调用变量命名为与被调用函数的'receive'变量相同的名称。返回变量同上。你知道吗

工作正常,但是除了将来将变量更改为global之外,我还会遇到什么问题吗?你知道吗

调用示例:v_Array = f_InitSpecified2DArray(v_Width,v_Length) 调用或“receiving”函数的示例: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)

问题是:在函数return中重用名称v_Array以及随后在调用代码中重用名称v_Array会导致任何冲突吗?在调用代码中,名称被分配到具有相同名称v_Array的变量中?你知道吗

谢谢。你知道吗


Tags: 函数代码名称示例returndef经验width
2条回答

不,这不会给您带来困难,也不会给您、您的读者或Python解释器带来混乱。当然,这比仅仅为了与参数名不同而编造一个新的名称更容易混淆,这是不必要的。事实上,您经常会遇到命名参数及其参数使用相同的名称,如

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

从哪来的博士.py在标准库中(对于python3.3)。你知道吗

在标准库中搜索这种模式是很有启发性的,<name>=<same_name>(滥用符号,我马上纠正),因为它的出现只是您所问问题的例子。在OS X和Linux上,以下命令将显示标准库(以及站点包)中出现该模式的所有行:

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

例如,在Mac上,python3.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个,其中包括我的sitepackages子目录中的几十个。换句话说,这是很常见的。你知道吗

阅读PEP 008标题为“Python代码样式指南”

你似乎在寻找更精确、更系统的东西,这点我很感激,但如果你试图遵循pep008,你将为自己和其他人处理你的代码付出很多努力和困惑。你知道吗

像往常一样,你不会发现它无处不在,但那就是生活。你知道吗

对于您关于函数名和变量的问题,pep008建议使用小写名称和用下划线分隔的单词。你知道吗

局部变量名是不相关的,对于return使用什么变量名并不重要。你知道吗

不要过早地计划将变量移动到全局范围,事实上你应该朝着另一个方向工作。你知道吗

相关问题 更多 >

    热门问题