首页 > 解决方案 > 克隆函数,将 POSITIONAL_OR_KEYWORD 参数转换为 KEYWORD_ONLY

问题描述

Python 3.8 引入了Positional-Only 参数。给定一个定义为的函数

def fun(
  po₁, po₂, …, poₙ,    # POSITIONAL_ONLY arguments
  /,                   # po-seperator.
  pk₁, pk₂, …, pkₘ,    # POSITIONAL_OR_KEYWORD arguments
  *args,               # VAR_POSITIONAL arguments
  ko₁, ko₂, …, koₗ,    # KEYWORD_ONLY arguments
  **kwargs             # VAR_KEYWORD arguments
)

我想以编程方式创建一个fun所有POSITIONAL_OR_KEYWORD参数都转换为KEYWORD_ONLY参数的克隆:

def fun_clone(
  po₁, po₂, …, poₙ,
  /,
  *args,               
  pk₁, pk₂, …, pkₘ,    # POSITIONAL_OR_KEYWORD converted to KEYWORD_ONLY
  ko₁, ko₂, …, koₗ,
  **kwargs
): 
return fun(po₁, po₂, …, poₙ, pk₁, pk₂, …, pkₘ, *args, ko₁, ko₂, …, koₗ, **kwargs)

标签: pythonpython-3.xpython-3.8signature

解决方案


推荐阅读