0

很抱歉再次重复同样的事情,但我已经搜索过,但我仍然无法解决我的问题......

如果我想更改单个“int”值,我必须创建一个列表吗?一团糟。它在 C 中更舒服......(如 void function(int a, b, c, *d, *e, *f))

这就是我想要做的(我必须改变“d”,“e”,“f”):

d = 4
e = 9
f = 11
def function(a,b,c,d,e,f)
   a = something
   b = something
   c = 1
   d = 2
   e = 3
   f = 4

说了这么多,我是否必须创建字典或列表来处理简单的数字?我还是个新手,但我想知道最近困扰我的这个问题的最佳解决方案是什么。

感谢你们。

4

2 回答 2

5

是的。因为 python 可以简单地返回一个元组,所以您可以使用它来更改多个值:

d = 4
e = 9
f = 11
def function(a,b,c)
   a = something
   b = something
   c = 1
   d = 2
   e = 3
   f = 4
   return (d, e, f)

d, e, f = function(d, e, f)

由于通过引用传递主要用于(至少在 C 中)来解决您不能从函数返回多个值的事实,因此您不需要Python 中通过引用传递。

于 2012-12-16T17:41:44.167 回答
2

SO上有一个问题(和答案) ,它解释了关于将对象作为参数传递的知识。

关于您的代码,您始终可以在 a 中返回这些值tuple并将它们分配给全局命名空间中 thos 对象的引用,同样return (d, e, f):现在要将它们分配给对象中的引用,您可以使用序列解包,例如d, e, f = function(params)

于 2012-12-16T17:41:31.070 回答