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

时间:2019-03-21 06:47:39

标签: python function parameters reference mutable

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

eMap.entrySet().stream().filter(e -> e.getValue().contains('aaa'))

好吧,似乎“目标”仅在函数内更改,但是如何使新值在函数外可行?谢谢。

5 个答案:

答案 0 :(得分: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)

答案 1 :(得分:1)

您的函数需要返回新值。 target变量仅在appendFlag函数中具有作用域。

def appendFlag(target, value):
   ...
   return target

m = appendFlag(m, "ok")

答案 2 :(得分:1)

要更新m的值,您应该return的串联值并将其分配给变量m

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

print(appendFlag)
m = "hey"
m = appendFlag(m,"ok")
print(m)

输出

<function appendFlag at 0x000001423C99F268>
heyok 

答案 3 :(得分:1)

您需要使用可以修改的对象

>>> m = []
>>> def appendFlag(target, value):
...     target.append(value)
...     target.append(" ")
...
>>> appendFlag(m, "ok")
>>> m
['ok', ' ']

答案 4 :(得分:1)

函数内部的变量只有函数作用域,如果您从函数内部更改变量的值,则不会在函数外部反映出来。如果要更改全局变量m的值,请按如下所示从函数外部进行更新

 `def a(target, value):
        target += value
        target += " "
        return target
  m=''
  m=a(m,'ok')

`