You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不使用global关键字的情况下修改字符串变量val的值?

不用global关键字修改全局变量val的方法

当然可以,你的原代码没生效是因为函数里的val是局部参数,和全局的val是完全独立的两个变量,修改局部的val不会影响全局的,而且你调用函数后也没把返回值赋值给全局val,所以print(val)还是输出test。

下面给你两种可行的实现方式:

方法一:利用函数返回值重新赋值

直接让函数返回新值,然后把全局val重新赋值为这个返回结果:

val = 'test'

def setval():
    return 'new'

# 把函数返回的新值赋值给全局val
val = setval()

print(val)  # 输出:new

方法二:用可变对象包裹变量

把val放到列表、字典这类可变对象里,函数内修改可变对象的内部元素,不需要global就能影响外部的对象:

# 用列表包裹原变量
val = ['test']

def setval(arr):
    # 修改列表的第一个元素
    arr[0] = 'new'

setval(val)

print(val[0])  # 输出:new

内容的提问来源于stack exchange,提问作者CrotaL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 23:42:01