我试图在函数内部修改字符串的值,如下所示:
eMap.entrySet().stream().filter(e -> e.getValue().contains('aaa'))
好吧,似乎“目标”仅在函数内更改,但是如何使新值在函数外可行?谢谢。
答案 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')
`