dataclass_module_1.py 837 B

1234567891011121314151617181920212223242526272829303132
  1. #from __future__ import annotations
  2. USING_STRINGS = False
  3. # dataclass_module_1.py and dataclass_module_1_str.py are identical
  4. # except only the latter uses string annotations.
  5. import dataclasses
  6. import typing
  7. T_CV2 = typing.ClassVar[int]
  8. T_CV3 = typing.ClassVar
  9. T_IV2 = dataclasses.InitVar[int]
  10. T_IV3 = dataclasses.InitVar
  11. @dataclasses.dataclass
  12. class CV:
  13. T_CV4 = typing.ClassVar
  14. cv0: typing.ClassVar[int] = 20
  15. cv1: typing.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. @dataclasses.dataclass
  20. class IV:
  21. T_IV4 = dataclasses.InitVar
  22. iv0: dataclasses.InitVar[int]
  23. iv1: dataclasses.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.