嗨我想知道如何在 python 中实现这个。举例来说,您有一个带有两个参数的函数,并且都打印到控制台
def myFunc(varA, varB):
print 'varA=', varA
print 'varB=', varB
我见过一些库(我想到的就是 pymel),它允许您按名称指定正在解析数据的参数,没有特定的顺序。例如
myFunc(varB=12, varA = 'Tom')
我不确定我错过了什么,因为当我尝试在 Maya 环境内部或外部声明我自己的函数时,这似乎不起作用。
任何线索都会很棒,提前谢谢你。
这是正常的 Python 行为。如果您看到错误,那么您就犯了其他错误(例如缺少必需的参数、尝试按名称传递位置参数等)。
>>> def func(foo, bar):
... print foo, bar
...
>>> func(bar='quux', foo=42)
42 quux
您似乎正在寻找一种在 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 已达到其生命周期并且不再受支持。