Python 当属性名与类名相同时,错误的类型提示

Python 当属性名与类名相同时,错误的类型提示,python,python-3.x,typehints,Python,Python 3.x,Typehints,我正在使用python3.7.4。hursbandnew和丈夫之间唯一的区别是妻子/妻子属性(妻子也是类名)。为什么它们会产生不同类型的提示 在python中,类名称通常使用PascalCase,属性名称通常使用snake_大小写。然而,我经常处理返回JSON的外部API。我复制JSON以生成带有类型注释的数据类。它生成与属性名相同的类名 from typing import get_type_hints, Optional from dataclasses import dataclass

我正在使用
python3.7.4
hursbandnew
丈夫
之间唯一的区别是
妻子
/
妻子
属性(
妻子
也是类名)。为什么它们会产生不同类型的提示

在python中,类名称通常使用PascalCase,属性名称通常使用snake_大小写。然而,我经常处理返回JSON的外部API。我复制JSON以生成带有类型注释的
数据类
。它生成与属性名相同的类名

from typing import get_type_hints, Optional
from dataclasses import dataclass

@dataclass
class Wife:
    name: str = ''


@dataclass
class Husband:
    name: str = ''
    wife: Optional[Wife] = None


@dataclass
class HusbandNew:
    name: str = ''
    Wife: Optional[Wife] = None


get_type_hints(Husband)
>>> {'name': str, 'wife': typing.Union[__main__.Wife, NoneType]}
get_type_hints(HusbandNew)
>>> {'name': str, 'Wife': NoneType}