Python:按名称传递参数

问题描述 投票:0回答:2

嗨我想知道如何在 python 中实现这个。举例来说,您有一个带有两个参数的函数,并且都打印到控制台

def myFunc(varA, varB):
    print 'varA=', varA
    print 'varB=', varB

我见过一些库(我想到的就是 pymel),它允许您按名称指定正在解析数据的参数,没有特定的顺序。例如

myFunc(varB=12, varA = 'Tom')

我不确定我错过了什么,因为当我尝试在 Maya 环境内部或外部声明我自己的函数时,这似乎不起作用。

任何线索都会很棒,提前谢谢你。

python function parameters arguments
2个回答
19
投票

这是正常的 Python 行为。如果您看到错误,那么您就犯了其他错误(例如缺少必需的参数、尝试按名称传递位置参数等)。

>>> def func(foo, bar):
...   print foo, bar
... 
>>> func(bar='quux', foo=42)
42 quux

0
投票

您似乎正在寻找一种在 Python 函数中实现命名参数的方法,该方法允许您通过指定参数名称将参数传递给函数,而不管其顺序如何。这是许多 Python 库的常见功能。

在您的示例中,您希望能够使用如下命名参数调用 myFunc:

myFunc(varB=12, varA='Tom')

这实际上是 Python 中的一个标准功能。您的函数定义是正确的,但您可能使用旧版本的 Python(Python 3 之前),其中语法略有不同。在 Python 2 中,您可以使用 print 作为语句,但在 Python 3 中,它是一个函数。

这是代码的更新版本,可在 Python 2 和 Python 3 中运行:

def myFunc(varA, varB):
    print('varA=', varA)
    print('varB=', varB)

# Call the function with named parameters
myFunc(varB=12, varA='Tom')

确保您使用的 Python 版本支持此语法。如果您使用的是 Python 2,请考虑升级到 Python 3,因为 Python 2 已达到其生命周期并且不再受支持。

© www.soinside.com 2019 - 2024. All rights reserved.