python - 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]
是一个列表,而不是值本身。
解决方案
您也许可以尝试 try except 语句,我不确定这是否是您要查找的内容,但它可能会起作用:
try:
return result
except Exception as e:
errorMsg = e + " has gone wrong!"
return errorMsg
这使用 errorMsg 作为字符串,而不是像你拥有的列表,但我相信这应该有效
推荐阅读
- php - WooCommerce 产品标题无法在单个产品页面上删除
- android - Android 导航对话框片段回调
- ansible - 用ansible获取网络的Name接口
- javascript - 始终显示占据整个 div 的日期输入日历
- django - 仅使用用户名进行身份验证
- android - 如何在没有操作栏的情况下显示菜单图标?
- javascript - 是否可以在另一个组件中显示来自 useState 的更新状态?
- python - 在 Brainrender 中,有没有办法在标签上阻止大脑加载颠倒?
- php - Laravel 7 Excel 3.1 FromQuery 导出来自 Eloquent 数据透视表的字段
- c - 如何 fscanf 一行最多三个整数?