Python:显式使用默认参数

use*_*428 6 python default-arguments

在正常情况下,通过省略这些参数来调用具有默认参数的函数。但是,如果我正在即时生成参数,省略一个并不总是那么容易或优雅。有没有办法显式使用函数的默认参数?也就是说,传递一个指向默认参数的参数。

所以像这样的东西除了~use default~被一些智能的东西所取代。

def function(arg='default'):
  print(arg)

arg_list= ['not_default', ~use default~ ]

for arg in arg_list:
  function(arg=arg)

# output:
# not_default
# default
Run Code Online (Sandbox Code Playgroud)

我不知道这是否可能,并且考虑到术语“默认参数”,我所有的搜索都是编码人员的第一个教程。如果不支持此功能也没关系,我只想知道。

wim*_*wim 2

不幸的是Python中没有这样的功能。有一些破解方法,但它们不是很受欢迎。

简单而流行的模式是将默认值移至函数体中:

def function(arg=None):
    if arg is None:
        arg = 'default'
    ...
Run Code Online (Sandbox Code Playgroud)

现在您可以省略参数或arg=None显式传递以采用默认值。

  • 尽管这确实假设“None”永远不能成为有效的参数。 (4认同)