首页 > 解决方案 > 在一行中从多返回函数中解包并分配单个返回值(Python)

问题描述

我正在尝试执行以下操作,但它不起作用:

agreements = getEligibleAndActiveAgreements(username).eligibleAgreements

对于返回 2 个结果的函数。我不想先分配一个通用变量,比如result = ..,然后检查result.eligibleAgreements,我想在同一行上从一个返回中快速分配给特定变量。

def getEligibleAndActiveAgreements(username):
    ...
    return eligibleAgreements, activeAgreements

getEligibleAndActiveAgreements(username).eligibleAgreements错误

AttributeError: 'tuple' object has no attribute 'eligibleAgreements' 

getEligibleAndActiveAgreements错误(用户名)['eligibleAgreements']

TypeError: tuple indices must be integers or slices, not str

标签: python

解决方案


尝试以下任何一种:

agreements, _ = getEligibleAndActiveAgreements(username)
# OR
agreements = getEligibleAndActiveAgreements(username)[0]

该函数返回一个包含两个值的元组。为了独立访问这些值,您需要使用索引值(从 0 开始)或者只是解压缩到协议中并丢弃另一个。


推荐阅读