On Tue, Nov 16, 2021 at 05:04:05PM +0400, Abdur-Rahmaan Janhangeer wrote: > A simple question: why do we need field(default_factory ) in > dataclasses?
For the same reason that the following code doesn't do what some people might expect it to: ```python def add_to(elem, inlist=[]): inlist.append(elem) return inlist list1 = add_to(1) list2 = add_to(2) print(list1) # prints [1] print(list2) # prints [1, 2], potentially confusing ``` Mutable attributes are created once, upon definition. Reusing the same function (or instantiating objects of the same class) and modifying this attribute can lead to possibly unexpected side effects as above. - DLD -- https://mail.python.org/mailman/listinfo/python-list