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

Python中如何为函数参数赋值?能否在函数内修改传入变量值?

如何让Python函数内部修改外部变量并输出10?

当然可行,但你原来的写法没法达到目的——这是因为整数是Python的不可变类型,函数里的param只是外部n的一个局部引用副本,当你给param = 10赋值时,其实是创建了一个新的整数对象,和外面的n完全没关系了。

下面给你几种实用的解决思路:

方法1:返回修改后的值(最推荐)

直接让函数返回目标值,然后在外部把返回值重新赋值给n,这是Python里最清晰、最符合规范的做法:

def init_param(param):
    return 10  # 返回新值

n = 1
n = init_param(n)
print(n)  # 输出10

方法2:用可变类型包裹不可变值

如果不想用返回值的方式,可以用列表这类可变类型来包裹整数。因为可变类型的修改会直接作用在原对象上,不会创建新对象:

def init_param(param):
    param[0] = 10  # 修改列表里的元素

n = [1]  # 用列表包裹初始值
init_param(n)
print(n[0])  # 输出10

方法3:使用global关键字(不推荐)

如果n是全局变量,可以在函数里用global声明来直接修改它,但这种方式会破坏代码的封装性,让函数和全局变量强耦合,除非必要不建议使用:

def init_param():
    global n  # 声明要修改全局变量n
    n = 10

n = 1
init_param()
print(n)  # 输出10

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:57:08