dataclass_module_2.py 756 B

1234567891011121314151617181920212223242526272829303132
  1. #from __future__ import annotations
  2. USING_STRINGS = False
  3. # dataclass_module_2.py and dataclass_module_2_str.py are identical
  4. # except only the latter uses string annotations.
  5. from dataclasses import dataclass, InitVar
  6. from typing import ClassVar
  7. T_CV2 = ClassVar[int]
  8. T_CV3 = ClassVar
  9. T_IV2 = InitVar[int]
  10. T_IV3 = InitVar
  11. @dataclass
  12. class CV:
  13. T_CV4 = ClassVar
  14. cv0: ClassVar[int] = 20
  15. cv1: ClassVar = 30
  16. cv2: T_CV2
  17. cv3: T_CV3
  18. not_cv4: T_CV4 # When using string annotations, this field is not recognized as a ClassVar.
  19. @dataclass
  20. class IV:
  21. T_IV4 = InitVar
  22. iv0: InitVar[int]
  23. iv1: InitVar
  24. iv2: T_IV2
  25. iv3: T_IV3
  26. not_iv4: T_IV4 # When using string annotations, this field is not recognized as an InitVar.