python:如何更改函数输入参数的值?

新手上路,请多包涵

我试图修改函数内部字符串的值,如下所示:

 >>> def appendFlag(target, value):
...     target += value
...     target += " "
...
>>> appendFlag
<function appendFlag at 0x102933398>
>>> appendFlag(m,"ok")
>>> m
''

好吧,似乎“目标”只是在函数内发生了变化,但是如何使新值在函数外可行呢?谢谢。

原文由 Hind Forsum 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 462
2 个回答

这是通过返回在 python 中处理的。

 def appendFlag(target, value):
   target += value
   target += " "
   return target

你可以这样使用它:

 m = appendFlag(m,"ok")

你甚至可以像这样返回几个变量:

 def f(a,b):
   a += 1
   b += 1
   return a,b

并像这样使用它:

 a,b = f(4,5)

原文由 Christian Sloper 发布,翻译遵循 CC BY-SA 4.0 许可协议

可变数据类型,例如列表或字典,可以从函数内部更改而无需返回:

 def duplicate_last(l):
    l.append(l[-1])

l = [1, 2, 3]
duplicate_last(l)

原因是 python 中可变对象和不可变对象的内存管理不同。

原文由 negvet 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题