getting attribute error while accessing the class member my_list which is initialized using default_factory method
I want to create a Empty list and update the list with values passed from the user using dataclass
from dataclasses import dataclass, field
@dataclass
class MyClass:
my_list: list[int] = field(default_factory=list)
my_string: str = ""
@classmethod
def update_my_list(cls, new_list: list[int]):
for index, _ in enumerate(new_list):
cls.my_list[index] = new_list[index]
return cls(new_list, "NO")
my_object = MyClass()
print(my_object.my_list) # Output: []
print(my_object.my_string) # Output: ""
my_object = MyClass.update_my_list([4, 5, 6]) -> **AttributeError: type object 'MyClass' has no attribute 'my_list'**
print(my_object)
How to resolve this issue?
Found working solution:
from dataclasses import dataclass, field
@dataclass
class MyClass:
my_list: list = field(default_factory=list)
my_string: str =''
@classmethod
def update_my_list(cls, new_list: list):
cls.my_list = new_list
return cls(new_list, "NO")
my_object = MyClass()
print(my_object.my_list) # Output: []
print(my_object.my_string) # Output: ""
my_object = MyClass.update_my_list([4, 5, 6])
print(my_object)
output : MyClass(my_list=[4, 5, 6], my_string='NO')