On 14/12/2022 13:49, Stefan Ram wrote:
I also found an example similar to what was discussed here
in pypy's library file "...\Lib\_tkinter\__init__.py":
|def _flatten(item):
| def _flatten1(output, item, depth):
| if depth > 1000:
| raise ValueError("nesting too deep in _flatten")
| if not isinstance(item, (list, tuple)):
| raise TypeError("argument must be sequence")
| # copy items to output tuple
| for o in item:
| if isinstance(o, (list, tuple)):
| _flatten1(output, o, depth + 1)
| elif o is not None:
| output.append(o)
|
| result = []
| _flatten1(result, item, 0)
| return tuple(result)
.
This presumably results in an (avoidable) run-time overhead from
constructing _flatten1 every time _flatten is called (and having it
garbage-collected later).
Best wishes
Rob Cliffe
--
https://mail.python.org/mailman/listinfo/python-list