New submission from Misha Drachuk <[email protected]>:
Forward reference is not resolved by `dataclasses.fields()`, but it works with
`typing.get_type_hints()`.
E.g.
from dataclasses import dataclass, fields
from typing import Optional, get_type_hints
@dataclass
class Nestable:
child: Optional['Nestable']
o = Nestable(None)
print('fields:', fields(o))
print('type hints:', get_type_hints(Nestable))
... outputs the following:
fields: (Field(name='child',type=typing.Union[ForwardRef('Nestable'), NoneType]
... )
type hints: {'child': typing.Union[__main__.Nestable, NoneType]}
----------
components: Library (Lib)
messages: 340361
nosy: mdrachuk
priority: normal
severity: normal
status: open
title: Forward reference is not resolved by dataclasses.fields()
type: behavior
versions: Python 3.7
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue36643>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com