Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何避免Pycharm上有效Python代码的错误_Python_Python 3.x - Fatal编程技术网

如何避免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
,则不会。