Seems the dict.pop() can distinguish between user-specified "default" and real default(omitted).
For example(real result):
my_dict.pop('non-exist-key', None)
my_dict.pop('non-exist-key')
#Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
#KeyError: 'non-exist-key'
I expect dict.pop has one default value for the "default" parameter otherwise I expect result:
#Throw exception in caller rather than in callee(my_dict.pop)
my_dict.pop('non-exist-key')
#TypeError: my_dict.pop() missing 1 required positional argument: 'default'