追加函数返回结果导致非完整

2024-09-29 23:31:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个返回列表的函数:

def get_all_newids() -> list:
    return list(group_dict.values())

当我试图在赋值时附加此列表时,它赋值None

grpids = get_all_newids().append('42')  # None

如果我在作业后追加,一切都会按预期进行:

grpids = get_all_newids()
grpids.append('42')  #  ['33', '42']

只是想知道为什么会这样。有什么办法可以在一个班轮里做到这一点吗?你知道吗


Tags: 函数none列表getreturndefgroupall
2条回答

@eumiro提供了一个解决方案,但是没有得到回答:

Just wondering why exactly this is happening.

因为在Python中“mutating”方法返回None是惯用的(尽管不是通用的),因为没有很好的理由让它们返回某些东西(例如pop如果它不返回它弹出的值,那么它的用处会小得多)。你知道吗

append将项添加到列表中,并且不返回任何内容,因为追加没有内在的返回值。同样地extendinsertremovereversesort。你知道吗

您可以在一行中完成:

grpids = get_all_newids() + ['42']

相关问题 更多 >

    热门问题