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

如何在Python的while循环中保留初始传入的variable_1和variable_2的值

解决方案

你只需要在函数内部预先备份原始入参,每次循环开始时用备份重置变量即可,不需要硬编码值也不会污染全局作用域:

  1. 进入函数后先对初始入参做深拷贝备份,避免可变对象的引用关联导致备份被意外修改
  2. 每次while循环启动时,用备份的初始值重新赋值给本次循环使用的变量
  3. 循环内所有修改逻辑都针对本次循环的变量操作,始终不修改初始备份

代码实现示例

import copy

def function(variable_1, variable_2):
    # 备份原始入参,深拷贝兼容所有可变/不可变类型
    init_v1 = copy.deepcopy(variable_1)
    init_v2 = copy.deepcopy(variable_2)
    switch = True
    
    while switch:
        # 每次循环开头重置为原始值
        run_v1 = copy.deepcopy(init_v1)
        run_v2 = copy.deepcopy(init_v2)
        
        # 以下原有逻辑全部替换为操作run_v1、run_v2
        inner_function(run_v1, run_v2)
        # 原有数据结构转换逻辑
        # ...
        # 原有判断条件
        if 你的判断条件:
            switch = False
            return run_v1, run_v2

如果你的两个变量确定是数值、字符串、元组这类不可变类型,可以把copy.deepcopy换成直接赋值,能省一点性能,用深拷贝是兼容性最强的写法,不需要额外判断变量类型。

这个方案的改动量极小,你不需要调整原有函数的核心逻辑,只需要加两行备份代码和循环开头的两行重置代码即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:00:02