python - 可选参数的默认值
问题描述
我正在 python 中创建一个带有可选参数的函数*args
。这个函数调用另一个传递这个可选参数的函数。但是,当某个条件适用时,我希望可选参数具有某个默认值,而不是函数调用中传递的值。在下面的代码片段中很清楚,简单地设置一个新值*args
是不正确的,但正确的方法是什么?
def function(arg1, arg2, *args):
if condition:
*args = value
function2(*args)
解决方案
您可以通过 args 中的索引来识别您的参数:
def function(arg1, arg2, *args):
if condition:
args = list(args)
if len(args) == 0: # the second arg in args was not set
args.append("first default")
if len(args) == 1:
args.append("second default")
function2(*args)
但正如你所见 - 它有点难看。if
如果您想使用很多默认位置参数,它将涉及很多语句。**kwargs
如果可以,请使用。
推荐阅读
- discord.js - 重写命令处理程序
- laravel - 调用未定义的方法 Illuminate\Database\Query\Builder::firstOrFail()
- flutter - 如何在 Flutter Flame 游戏引擎中停止精灵动画
- c++ - 计算二叉搜索树级别中的节点数
- python - 避免 matplotlib 中的重叠不透明度
- java - POST API 请求超时问题
- html - 如何在Angular中的新视图/组件上传递和显示计算结果?
- scala - 由于 java.lang.NoSuchMethodError,sbt 无法编译 Scala 项目
- nuxt.js - 如果路由不以 index 开头,则防止 nuxt 从 index 开始
- swift - 我可以查询并查看 Firestore 的两个不同字段中是否存在一个值吗?