PEP-8规范中带联合类型的默认参数格式要求是什么?
Python联合类型默认参数的规范写法
先明确几个核心代码风格规范:
- 联合类型的
|运算符两侧必须加空格(PEP604规定,Python 3.10+支持的str | None语法),不需要额外加括号,除非是为了明确优先级的复杂场景。 - 类型注解的冒号
:后面必须加空格。 - 默认参数的等号格式:目前主流规范(包括自动格式化工具Black的规则)是在类型注解后的默认参数等号两侧加空格,这也是最易读且符合现代Python代码风格的写法。
针对你给出的三种写法:
def foo(bar: str | None=None):|两侧的空格符合要求,但默认参数等号无空格,虽在旧版PEP8规则中允许,但可读性稍差,不是最优选择。def foo(bar: str | None = None):完全符合现代Python规范,|两侧有空格、类型注解冒号后有空格、默认参数等号两侧有空格,是最标准的写法。def foo(bar: (str | None)=None):括号完全多余,PEP604明确联合类型无需额外括号,这种写法不符合规范。
内容的提问来源于stack exchange,提问作者GrandeKnight
相关产品推荐
相关产品推荐

