如何避免Pycharm上有效Python代码的错误
这是我的代码:如何避免Pycharm上有效Python代码的错误,python,python-3.x,Python,Python 3.x,这是我的代码: from typing import Any, NamedTuple, Mapping, Optional class Myclass(NamedTuple): my_tenant_id: str my_firstname_name: str my_iphone_version: int my_otherdetails: Optional[Mapping] Python3.6.6说 未解析引用 在出现:的每一行如果希望使用类型注释,还必须指定值
from typing import Any, NamedTuple, Mapping, Optional
class Myclass(NamedTuple):
my_tenant_id: str
my_firstname_name: str
my_iphone_version: int
my_otherdetails: Optional[Mapping]
Python3.6.6说
未解析引用
在出现
:
的每一行如果希望使用类型注释,还必须指定值
my_tenant_id: str = ""
my_first_name: str = ""
python不能在不赋值的情况下预定义变量
更新:python的类型注释似乎允许声明不带值的类变量。
您确定使用的是python 3.6.6吗?我必须在环境设置中设置python3.6,它才能工作。请发布一个合适的MCVE-stdlib中没有任何名称为“NamedTuple”。我正在使用python3.6.6,并在Pycharm上尝试了3.6.7。尽管我输入了import Any、NamedTuple、Mapping,Optionalfrom输入import Any、NamedTuple、Mapping,可选类Myclass(NamedTuple):my_租户\u id:str my_firstname\u名称:str my_iphone\u版本:int my_其他详细信息:可选[Mapping]我无法在3.6.7上重现您的问题。这是一个类定义,而不是变量定义。张贴的代码是有效的。哦,这对我来说是新的。看来你是对的。我以前读过pythons的类型注释只是为了语法上的糖分。它没有添加任何新功能。但很明显,在这种情况下是这样的。如果没有
:str
,python会抱怨变量未定义,但如果使用:str
,则不会。