我很抱歉再次重复同样的事情,但我已经搜索了但我还是无法解决我的问题......
如果我想更改单个“int”值,我是否必须创建列表?一团糟。它在C语言中更加舒适...... (如void函数(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
话虽如此,我是否必须创建一个字典或列表来处理简单的数字? 我还是个新手,但是我想知道这个问题的最佳解决方案是什么,最近让我心烦意乱。
谢谢你们。
答案 0 :(得分: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中通过引用传递。
答案 1 :(得分:2)
有一个问题(和答案)here on S.O解释了将对象作为参数传递时需要了解的内容。
关于您的代码,您始终可以在tuple
中返回这些值,并将它们分配给全局命名空间中thos对象的引用,同样地:return (d, e, f)
。现在将它们分配给对象中的引用,可以使用序列解包,例如d, e, f = function(params)