我是Python新手,从昨天开始(尽管我已经编程45年了)。
我来这里是因为我在写一个函数,希望有两个所谓的参数。如果它只是一个out参数,我现在就不会在检查reference/value在Python中的工作方式时感到困惑。我只需要使用函数的返回值。但由于我需要两个这样的参数,我觉得我需要整理一下。
在这篇文章中,我将展示我如何解决我的问题。也许其他来到这里的人会觉得它很有价值,尽管它并不是对主题问题的答案。当然,经验丰富的Python程序员已经知道我使用的解决方案,但这对我来说是新的。
从这里的答案中,我可以很快看出Python在这方面的工作方式有点像Javascript,如果您想要引用功能,则需要使用变通方法。
但后来我在Python中发现了一些我以前在其他语言中没有见过的东西,即可以用简单的逗号分隔方式从函数中返回多个值,如下所示:
def somefunction(p):
a=p+1
b=p+2
c=-p
return a, b, c
并且你可以在调用端类似地处理它,就像这样
x, y, z = somefunction(w)
这对我来说已经足够好了,我很满意。不需要使用一些变通方法。
在其他语言中,您当然也可以返回许多值,但通常是从对象中返回,您需要相应地调整调用端。
Python的方法很好,也很简单。
如果您想通过引用进行更多模拟,可以执行以下操作:
def somefunction(a, b, c):
a = a * 2
b = b + a
c = a * b * c
return a, b, c
x = 3
y = 5
z = 10
print(F"Before : {x}, {y}, {z}")
x, y, z = somefunction(x, y, z)
print(F"After : {x}, {y}, {z}")
这给出了这个结果
Before : 3, 5, 10
After : 6, 11, 660