New submission from wyz23x2 <wyz2...@163.com>:
Doing this is generally very annoying: y = x.copy() y.some_method() Sometimes x doesn't have copy(), so: from copy import deepcopy y = deepcopy(x) y.some_method() So maybe a function could be added to help. For example: def apply(obj, function, /, args=(), kwargs={}): try: new = obj.copy() except AttributeError: from copy import copy new = copy(obj) function(new, *args, **kwargs) return new # implement reversed() for list lis = [1, 2, 3, 4, 5] arr = apply(lis, list.reverse) print(arr) # [5, 4, 3, 2, 1] apply() maybe isn't the best name because of the builtin apply() in Python 2, but that's EOL. It could be added in the standard library. ---------- components: Library (Lib) messages: 383050 nosy: wyz23x2 priority: normal severity: normal status: open title: Add function that supports "applying" methods versions: Python 3.10 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue42646> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com