0

这是一个简单的Python代码

for item in sorted(frequency, key=frequency.get, reverse=True)[:20]:
  print(item, frequency[item])

但是,如果调用frequency.get()而不是frequency.get,它会给我的错误"get expected at least 1 arguments, got 0"

我来自红宝石。在 Rubygetget()会完全一样。在 Python 中不一样吗?

例如,这里是http://www.tutorialspoint.com/python/dictionary_get.htmget()和 not的描述get。是什么get

4

1 回答 1

9

frequency.get描述了方法本身,而frequency.get()实际调用了该方法(并且错误地不给它任何参数)。你是对的,这与 Ruby 不同。

例如,考虑:

frequency = {"a": 1, "b": 2}
x = frequency.get("a")

在这种情况下,x等于1。但是,如果我们这样做:

x = frequency.get

x现在将是一个函数。例如:

print x("a")
# 1
print x("b")
# 2

这个函数就是你传递给sorted.

于 2013-01-03T05:10:49.733 回答