Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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
Python 3.x 在Python3.4和Python3.5中使用类型暗示会产生语法错误_Python 3.x_Type Hinting - Fatal编程技术网

Python 3.x 在Python3.4和Python3.5中使用类型暗示会产生语法错误

Python 3.x 在Python3.4和Python3.5中使用类型暗示会产生语法错误,python-3.x,type-hinting,Python 3.x,Type Hinting,我在不同的服务器上使用Pycharm和Python3.4来执行我编写的脚本。我在代码中使用类型暗示。现在,我的同事已经在Python3.5安装上执行了我的代码,并且在我的类型提示中出现了语法错误。在Python3.4 IE中,我没有“故意”使用任何模块进行类型暗示 def run(iargs) -> int: ^ syntax error 难道是Python3.4没有像3.5那样读取这些标记吗 编辑 我做了下面的测试 Python 3.4.3 (defaul

我在不同的服务器上使用Pycharm和Python3.4来执行我编写的脚本。我在代码中使用类型暗示。现在,我的同事已经在Python3.5安装上执行了我的代码,并且在我的类型提示中出现了语法错误。在Python3.4 IE中,我没有“故意”使用任何模块进行类型暗示

def run(iargs) -> int:
               ^ syntax error
难道是Python3.4没有像3.5那样读取这些标记吗

编辑

我做了下面的测试

Python 3.4.3 (default, Oct 28 2016, 10:12:53)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> def Add(r,l) -> int:
...   return int(r + l)
...
>>> Add(3,5)
8
>>>

Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> def Add(r,l) -> int:
...   return int(r + l)
...
>>> Add(3,5)
8
因此,关于Python3.4或3.5的版本没有问题,但是当我执行脚本时,我得到了以下信息

  File "test.py", line 235
    def run(iargs) -> int:
                   ^
SyntaxError: invalid syntax

Python 3.4不支持内联类型注释。您使用的语法是在3.5及更高版本中介绍的

如果要在3.4中使用类型注释,则需要将其设置为注释,如下所示:

def运行(iargs)#类型:(str)->str

除此之外,您还需要从
pypi
安装
typing
模块。另外值得注意的是,注释中的类型提示与>=3.5不兼容。是的,Python 3.4不理解类型提示的语法。这就是为什么它只在3.4中“起作用”?我正在用它的魅力。但是语法有什么问题,为什么它在3.5中不起作用,因为我想它应该起作用?当它起作用时,你没有在3.4中运行它。三重检查用过的口译员。我是。我知道我在运行3.4.3,因为我只安装了这个版本。问题是我们的一位开发人员在他自己的测试服务器上使用了我的脚本。Python 3.4支持语法,但它们只是函数注释()而不是类型提示()。与OP所说的导致语法错误的同一行代码相比,我看不出这一行代码有什么不同。哦,糟糕,评论在复制粘贴上消失了。这不是真的!函数注释是在3.0中添加的:除了falcojr所说的(这似乎是正确的-我刚刚在Python 3.4上进行了测试,没有错误),为什么您说它与Python>=3.5不兼容?无论如何,这只是一个评论。如果不明白,这是正常的评论。我认为类型提示(注释与否)在Python解释器上实际上没有任何作用。我认为它们只对IDE(比如PyCharm)和/或试图理解程序的人有用。如果我错了,请纠正我。我还需要上一门完整的Python课程。