123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- 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()
|