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

Python中如何在函数内部修改传入的变量值?

问题分析与解决

你的问题出在Python的参数传递机制上:bool属于不可变类型,函数接收这类参数时是按值传递的——你在IfIn函数里给output赋值True,只是修改了函数内部的局部变量,和外部的out变量完全是两个独立的对象,所以外部的out不会被改变。

修正方案1:直接返回结果(推荐)

没必要把output作为参数传入,直接让函数返回判断结果,再赋值给外部变量就行:

def IfIn(var, target_string):
    return target_string in var

out = False
string = "Banana"
out = IfIn(string, "na")
print(out)  # 输出True

修正方案2:用可变类型包装(仅作演示)

如果一定要通过参数修改外部变量,可以用列表这种可变类型来包装布尔值,因为可变类型是按引用传递的,修改内部元素会影响外部:

def IfIn(var, target_string, output):
    if target_string in var:
        output[0] = True

out = [False]  # 用列表包装布尔值
string = "Banana"
IfIn(string, "na", out)
print(out[0])  # 输出True

第一种方案是Python的常规写法,逻辑清晰简洁,建议优先使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:35:18