首页 > 解决方案 > Python - 如何创建可变的返回变量?

问题描述

我想预定义一个函数的返回值并在我的函数期间更改它的元素。所以,即让我们定义

def myFunc()
    properties = ["value","num", "comment"]
    elements = []
    parts = {"properties":properties, "elements":elements}    
    error = 0
    errorMsg = ""
    result = [parts, error, errorMsg]
    
    .... # do all the stuff

    return result

如果出现问题,我想将错误更改为错误代码并添加错误消息。如果一切顺利,elements将包含一些元素。

我明白了,为什么这总是会返回error=0。这是因为result没有存储对错误的引用,而是存储了与创建error时相同的引用result

那么我怎样才能实现,当改变它的元素时,返回值也会改变呢?我知道

error = [0]
errorMsg = [""]

和...一起

error[0]=1
errorMsg[0]="error"

有效,但在这种情况下,返回值res[1]是一个列表,而不是值本身。

标签: python

解决方案


您也许可以尝试 try except 语句,我不确定这是否是您要查找的内容,但它可能会起作用:

try:
    return result
except Exception as e:
    errorMsg = e + " has gone wrong!"
    return errorMsg

这使用 errorMsg 作为字符串,而不是像你拥有的列表,但我相信这应该有效


推荐阅读