Addendum: Clarifying context
 Note that this addendum to my question is just to help understand the context in which these functions are to be called. The context is that I would want debug output during developing and initial testing of my projects, and I want to lazily do stuff like:
from random import randint
from operator import add, sub
first, second = randint(1, 20), randint(1, 20)
action = add if first > 10 else sub
debug_print(first, action, second)
print('Result is: {}'.format(action(first, second)))
 Which could/should result in the output:
first: 6, action: <built-in function sub>, second: 8
Result is: -2
 The format_args() version is for use in logger.debug(format_args(...)). So "name of argument with value" with an argument of a will mean "a: 6" if it had the value of 6.