def _apply_defaults(bound):
"""Set default values for missing arguments.
For variable-positional arguments (*args) the default is an
empty tuple.
For variable-keyword arguments (**kwargs) the default is an
empty dict.
Args:
bound (:class:`inspect.BoundArguments`): A BoundArguments object.
Returns:
None
"""
arguments = bound.arguments
new_arguments = []
for name, param in bound._signature.parameters.items():
try:
new_arguments.append((name, arguments[name]))
except KeyError:
if param.default is not _empty:
val = param.default
elif param.kind is _VAR_POSITIONAL:
val = ()
elif param.kind is _VAR_KEYWORD:
val = {}
else:
# This BoundArguments was likely produced by
# Signature.bind_partial().
continue
new_arguments.append((name, val))
bound.arguments = OrderedDict(new_arguments)
评论列表
文章目录