Eric V. Smith <e...@trueblade.com> added the comment:
For the record, I don't disagree with namedtuples not having a base class. Maybe it's best to let copy.deepcopy() deal with namedtuples, instead of trying to detect them here. So just special case exact tuples and lists, and pass everything else to copy.deepcopy(). >>> C = namedtuple('C', 'a b c') >>> c = C(1, 2, 3) >>> b=copy.deepcopy(c) >>> b C(a=1, b=2, c=3) >>> hasattr(b, '_fields') True >>> hasattr(c, '_fields') True >>> b is c False >>> Although by doing that, you lose dict_factory or tuple_factory on nested data structures, and namedtuples that contain dataclasses would be handled differently, I think. I'll do some investigating. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue34363> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com