python - 在一行中从多返回函数中解包并分配单个返回值(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
解决方案
尝试以下任何一种:
agreements, _ = getEligibleAndActiveAgreements(username)
# OR
agreements = getEligibleAndActiveAgreements(username)[0]
该函数返回一个包含两个值的元组。为了独立访问这些值,您需要使用索引值(从 0 开始)或者只是解压缩到协议中并丢弃另一个。
推荐阅读
- javascript - Serenity/JS - 如何测试文件下载?
- redis - Nextcloud 更新后内存缓存出现问题
- java - JPA 转换器对“convertToDatabaseColumn”的不必要调用导致 ClassCastException
- kubernetes - GKE Kubernetes 集群从一个组织迁移到另一个组织后使用 kubectl 的权限错误
- android-mediaplayer - 如何使用 MediaPlayer#_prepare() C++ 源代码?
- javascript - 如何在可编辑的 DIV 中输出原始 HTML 代码
- ethereum - 批准时无法添加流动性
- reactjs - 如何使用 REACT Graphql 查询更新版本的 SWAPI 以获取所有人?
- java - 在java中我想在一行流中返回映射
- vespa - vespa:query/result.getContext(true).logValue(key,value) 在 accesslog 中不起作用