from dataclasses import dataclass, make_dataclass, is_dataclass, field from typing import List, Any @dataclass class Book: title: str author: str @dataclass class InventoryItem: name: str quantity: int = field(default=1) price: float = field(default=9.99) @dataclass class ProgramStaff: items: List[InventoryItem] # Или после python 3.10 # items: list[InventoryItem] @dataclass class A: name: Any value: Any = 42 # Создание класса через make_dataclass def test_1(): Person = make_dataclass('Person', ['firs_name', 'last_name', 'age']) artem = Person('Artem', 'Egorov', 33) print(artem) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @dataclass class Student: name: str surname: str student_id: int faculty: str specialty: str # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @dataclass class Point: x: int y: int def 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()