Ron Adam writes:
def names(defaults, pos_names, pos_args, kwds): return {}.=update(defaults) \ .=update(zip(pos_names, pos_args) \ .=update(kwds)
def names(defaults, pos_names, pos_args, kwds): for dct in pos_names, pos_args, kwds: defaults.update(dct) return defaults
Not quite the same but close. I just tried to come up with a more realistic example without having to look up a lot code. How does pos_args in your example get paired with names?
Sorry, I knew that before dinner but forgot after dinner. Same way as in yours: def names(defaults, pos_names, pos_args, kwds): for dct in zip(pos_names, pos_args), kwds: defaults.update(dct) return defaults If that doesn't work in my version (I've never used zip that way), how does it work in yours? BTW, I'd actually be more likely to write that now as def names(defaults, *updates): for update in updates: defaults.update(update) return defaults and call it with "names(zip(pos_names, pos_args), kwds)".