YAGNI.

This is rejected because it complicates the semantics. For example, if you always return both *args and **kws , what do you return when none of those are given? Returning a tuple of ((), {}) is kind of ugly, but provides consistency. But you might also want to just return None since that's also conceptually what the function was passed.

Or, what if you pass in exactly one positional argument, e.g. noop(7) . Do you return 7 or ((7,), {}) ? And so on.

The author claims that you won't ever need the return value of noop() so it will always return None .

Coghlan's Dialogs (edited for formatting):