python return 语句概念

python return statement concept

我试图从字典中找到最高的三个值,我应该 return 该值的键 这个方法我遇到过

import heapq

def get_n_largest(n,dictionary):
    return heapq.nlargest(n,dictionary,dictionary.get)

来自 python 文档,我不明白 nlargest 需要接受一个整数、一个可迭代对象和一个键(如果提供的话)。

我不明白的是return语句中的dictionary.get()dictionary.get()有什么区别 当我尝试打印字典的 dictionary.get 时 returns

"built-in method get of dict object at 0x0000020E77B12168"

我做了一些搜索,但我找不到关于它的概念。非常感谢任何帮助!

dictionary.get 没有调用函数,它只是对函数 dictionary.get 的引用。为了调用该函数,您需要执行 dictionary.get(*args, **kwargs) 至于这个 - heapq.nlargest(n,dictionary,dictionary.get) 我还没有看过 heapq 的文档。但显然 nlargest callable 似乎将可调用引用作为第三个参数。反过来,nlargest 可能会在逻辑中的某处调用 callable 作为 dictionary.get(*args, **kwargs)

没有区别。这两种情况下的 .get 方法完全相同。在 return 语句中,它将应用于字典中的键(可迭代的元素),即。称为 get(k)。在打印中它没有应用,即。使用字典键调用并打印 get 值,这是函数引用。