函数默认参数的Python无效语法错误

时间:2018-12-06 17:00:27

标签: python-3.x

这是我的代码,我看不到任何问题。

def test_methopd(async=False):
    pass

当我导入模块时,出现以下错误。

$ python3 -c "import test"
 File "/Users/gaurang.shah/Documents/ctc/code/ci-cd-framework/atf/clients/test.py", line 1
    def test_methopd(async=False):
                         ^
SyntaxError: invalid syntax

该代码在 Python 3.4.9 上运行良好,但在 Python 3.7.0

上却出错

1 个答案:

答案 0 :(得分:1)

从Python 3.7开始,async是一个保留字,不能用作标识符(例如参数名)

PEP描述了此更改:https://www.python.org/dev/peps/pep-0492/#deprecation-plans

  

折旧计划

     

asyncawait名称在CPython 3.5和   3.6。在3.7中,我们会将其转换为适当的关键字。

这也反映在在线文档中:https://docs.python.org/3/reference/lexical_analysis.html#keywords