函数参数类型设置返回语法错误

2022-02-24 00:00:00 python python-2.7 function arguments types

问题描述

我有一个包含函数参数类型声明的python脚本,如下所示:

def dump_var(v: Variable, name: str = None):

据我所知,这是为函数设置输入参数类型的有效语法,但它返回一个

SyntaxError: invalid syntax

可能出了什么问题?


解决方案

语法错误是因为Python2.7不支持类型提示。您可以使用Python 3.5+,也可以在注释中使用Python 2.7的类型提示,如PEP 484建议的那样:

针对Python 2.7和跨区代码的建议语法

某些工具可能希望在必须与Python2.7兼容的代码中支持类型批注。为此,此PEP有一个建议的(但不是强制的)扩展,其中函数注释放在# type:注释中。这样的注释必须紧跟在函数头之后(在文档字符串之前)。示例:以下Python 3代码:

def embezzle(self, account: str, funds: int = 1000000, *fake_receipts: str) -> None:
    """Embezzle funds from account using fake receipts."""
    <code goes here>

等同于:

def embezzle(self, account, funds=1000000, *fake_receipts):
    # type: (str, int, *str) -> None
    """Embezzle funds from account using fake receipts."""
    <code goes here>

相关文章