Steven D'Aprano wrote:

I am writing a book (with Python package) on algorithms that has *lots* of recursive functions. I have also discovered that changing names can be a pain. So in the text, (but not code) I have tried the equivalent of

# real_name
def f(params):
  ... f(args)

(This also keeps lines short enough for side-by-side versions, when I want to do that.)

But regardless, everyone is missing the most important point: why are you copying and pasting code in the first place?

In my case, I will be discussing variations of algorithms. Copy and edit minimizes fatigue and errors and maximizes parallelism.

 That is surely very close to
the top of the list of Worst Ever Anti-Patterns, and it should be avoided whenever possible.

Not if the alternative is re-typing ;-).

In Python, we can avoid much copy-and-paste coding with decorators.

But not when the variation is in the guts of the code.

> because recursive functions in Python don't actually call themselves, > they call whatever happens to be bound to their name at runtime.

I have mentioned that. Also, apparently non-recursive functions can become recursive after the fact by being bound to another name used in the function.

tjr

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to