我试图修改函数内部字符串的值,如下所示:
>>> def appendFlag(target, value):
... target += value
... target += " "
...
>>> appendFlag
<function appendFlag at 0x102933398>
>>> appendFlag(m,"ok")
>>> m
''
那么,似乎“目标”只是在功能内改变了,但如何使新值在功能之外可行?谢谢。
这是通过返回在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)
您的函数需要返回新值。 target
变量仅在appendFlag
函数内具有范围。
def appendFlag(target, value):
...
return target
m = appendFlag(m, "ok")
要更新m
的值,您应该return
连接值并将其分配给变量m
:
def appendFlag(target, value):
target += value
target += " "
return target
print(appendFlag)
m = "hey"
m = appendFlag(m,"ok")
print(m)
OUTPUT:
<function appendFlag at 0x000001423C99F268>
heyok
您需要使用可以修改的对象
>>> m = []
>>> def appendFlag(target, value):
... target.append(value)
... target.append(" ")
...
>>> appendFlag(m, "ok")
>>> m
['ok', ' ']
函数内部的变量只有函数作用域,如果从函数内部改变变量的值,它就不会反映在函数外部。如果要更改全局变量m的值,请从函数外部更新它,如下所示
`def a(target, value):
target += value
target += " "
return target
m=''
m=a(m,'ok')
`