【发布时间】:2012-11-22 05:05:34
【问题描述】:
我正在尝试编写一个函数来修改其中一个传递的参数。这是当前代码:
def improve_guess(guess, num):
return (guess + (num/guess)) / 2
x = 4.0
guess = 2.0
guess = improve_guess(guess, x)
但是,我想以不必进行最终分配的方式编写代码。这样,我就可以调用:
improve_guess(guess,x)
并在猜测中获得新值。
(我故意没有提到通过引用传递,因为在我的网络搜索过程中,我发现了很多关于该主题的学术讨论,但没有明确的方法。我真的不想使用全局变量或为此封装在一个列表中。)
【问题讨论】:
-
improve_guess(3, x)- 你将如何“修改”3? -
我们通常在 C 和 Java 中使用通过引用传递参数来执行此操作。这样,
guess参数就成为传入参数的别名。 -
哦,我明白你的意思了,但我的用例只会处理变量。
-
"我们通常在 C 和 Java 中使用通过引用传递参数来执行此操作。"什么?你会如何在 Java 中做到这一点? “这样一来,guess 参数就变成了传入参数的别名。”在 C 或 Java 中没有这样的东西。
标签: python function parameter-passing