On Sat, Sep 12, 2020 at 4:18 PM Cameron Simpson <c...@cskk.id.au> wrote: > > Normally, if one writes a method like this: > > def get(self, k, default=None): > > one can call it as foo.get('x',2) or as foo('x',default=2). > > But not with dict.get. I'm amazed I've never tripped over this before. > (Yes, I appreciate that dict is a builtin class written in C.) >
Yeah. In recent Python versions, you can use this functionality in your own code too. The docs for the get method say: Help on built-in function get: get(key, default=None, /) method of builtins.dict instance Return the value for key if key is in the dictionary, else default. The slash means that everything previous to that parameter is positional-only. Comes in handy, occasionally: >>> def spam(x, y, /, **kw): ... print(x, y, kw) ... >>> spam(1, 2, x=3, y=4) 1 2 {'x': 3, 'y': 4} ChrisA -- https://mail.python.org/mailman/listinfo/python-list