具有长参数的函数的Python类型注释样式

具有长参数的函数的Python类型注释样式,python,python-3.x,python-3.8,type-hinting,pep,Python,Python 3.x,Python 3.8,Type Hinting,Pep,canon(基于某些PEP)用什么方法设计带有长类型注释的函数定义 我可以设想一些备选方案: 备选案文1: def my_long_function_name_super_重要( 第一个长参数到我的函数:并集[int,str], 第二:Dict[int,str], 第三个参数:int=0)->(bool,int): 返回(True,1) 备选案文2: def my_long_function_name_super_重要( 第一个长参数到我的函数:并集[int,str], 第二:Dict

canon(基于某些PEP)用什么方法设计带有长类型注释的函数定义

我可以设想一些备选方案:

  • 备选案文1:
def my_long_function_name_super_重要(
第一个长参数到我的函数:并集[int,str],
第二:Dict[int,str],
第三个参数:int=0)->(bool,int):
返回(True,1)
  • 备选案文2:
def my_long_function_name_super_重要(
第一个长参数到我的函数:并集[int,str],
第二:Dict[int,str],
第三个参数:int=0
)->(布尔,整数):
返回(True,1)
  • 备选案文3:
def my_long_function_name_super_重要(
第一个长参数到我的函数:并集[int,str],
第二个:Dict[int,str],第三个参数:int=0
)->(布尔,整数):
返回(True,1)
  • 备选案文4:
def my_long_function_name_super_重要(
第一个长参数到我的函数:并集[int,str],
第二:Dict[int,str],
第三个参数:int=0,
)->(布尔,整数):
返回(True,1)

注意:以Python 3.8+为目标以获得最新答案。

正如@mistermiagi所暗示的,函数中的这些类型注释没有基于PEP的正式编码样式

也就是说,在使用了一些不同的选项之后,我意识到选项2和3在一些python代码格式化程序中产生了一些小问题(例如:jupyter notebook中的函数中的代码折叠),这是因为在结束时
没有缩进)
。因此,为了寻求最高的可读性,我最终使用了类似于选项2的东西,但在函数定义的最后一行有一个小缩进(更容易发现),每行有一个参数(更容易阅读):

def my_long_function_name_super_重要(
第一个长参数到我的函数:并集[int,str],
第二:Dict[int,str],
第三个参数:int=0
)->(布尔,整数):
返回(True,1)

F.Y.I.@MisterMiyagi的
黑色
格式化程序似乎正是选项2(可以试用)

没有。
black
格式化程序似乎已经被广泛采用,但它仍然不是官方的,因此是“意见”。你能把它变成一个答案吗?可能会显示
black
推荐的格式?为什么投反对票?至少留下一条评论:(我仍然认为这是一个完全有效的问题。否则,请评论它的缺陷。对于编码风格的要求可能是自以为是的。要求基于批准的PEP的佳能编码风格不应该。FWIW,而PEP-8对放注释的行没有任何说明。所以“小缩进”(除此之外,我觉得这很好。)