Python默认参数添加类型提示(: int)导致程序报错问题
问题原因解析
这是Python函数参数语法顺序错误导致的。
Python明确规定,函数参数的类型注解和默认值的书写顺序必须是:参数名: 类型 = 默认值,默认值必须放在类型注解的后面。
你写的代码里,把默认值foo()[0]放在了类型注解: int的前面,变成了i = foo()[0]: int——这种写法完全不符合Python的语法规则,解释器根本无法解析这个参数定义,直接就会抛出语法错误。
而没加类型注解时,i = foo()[0]是标准的默认参数写法,所以能正常运行。
正确的写法应该调整顺序,把类型注解放在前面:
def bar(i: int = foo()[0]): return i
内容的提问来源于stack exchange,提问作者Vorac
相关产品推荐
相关产品推荐

