| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | from dataclasses import dataclass, make_dataclass, is_dataclass, fieldfrom typing import List, Any@dataclassclass Book:    title: str    author: str@dataclassclass InventoryItem:    name: str    quantity: int = field(default=1)    price: float = field(default=9.99)@dataclassclass ProgramStaff:    items: List[InventoryItem]    # Или после python 3.10    # items: list[InventoryItem]@dataclassclass A:    name: Any    value: Any = 42# Создание класса через make_dataclassdef test_1():    Person = make_dataclass('Person', ['firs_name', 'last_name', 'age'])    artem = Person('Artem', 'Egorov', 33)    print(artem)# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@dataclassclass Student:    name: str    surname: str    student_id: int    faculty: str    specialty: str# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@dataclassclass Point:    x: int    y: intdef test_2():    point1 = Point(5, 7)    point2 = Point(-10, 12)    print(point1)    print(point2)    assert is_dataclass(Point), 'Point is not dataclass'    assert isinstance(point1, Point)    assert isinstance(point2, Point)# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~def main():        # book = Book('asdf', 'asdfas')    # print(book)    # test_1()    test_2()if __name__ == '__main__':    main()
 |