TypeError: get() takes no keyword arguments

前端 未结 3 872
后悔当初
后悔当初 2020-12-05 06:05

I\'m new at Python, and I\'m trying to basically make a hash table that checks if a key points to a value in the table, and if not, initializes it to an empty array. The off

相关标签:
3条回答
  • 2020-12-05 06:38

    The error message says that get takes no keyword arguments but you are providing one with default=0

    converted_comments[submission.id] = converted_comments.get(submission.id, 0)
    
    0 讨论(0)
  • 2020-12-05 06:42

    Many docs and tutorials, for instance https://www.tutorialspoint.com/python/dictionary_get.htm, erroneously specify the syntax as

    dict.get(key, default = None)

    instead of

    dict.get(key, default)

    0 讨论(0)
  • 2020-12-05 07:00

    Due to the way the Python C-level APIs developed, a lot of built-in functions and methods don't actually have names for their arguments. Even if the documentation calls the argument default, the function doesn't recognize the name default as referring to the optional second argument. You have to provide the argument positionally:

    >>> d = {1: 2}
    >>> d.get(0, default=0)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: get() takes no keyword arguments
    >>> d.get(0, 0)
    0
    
    0 讨论(0)
提交回复
热议问题