python 进行函数封装是怎么传递默认参数?

比如有一个函数 funcA(arg1, arg2=20)

我定义一个函数 funcB(arg1, arg2) funcB 中调用了 funcA

我希望调用 funcB(arg1, arg2)时,在函数内部会调用 funcA(arg1, arg2) 从而向函数funcA传入参数arg1和arg2。

我希望调用 funcB(arg1)时,在函数内部会调用 funcA(arg1) 从而向函数funcA传入参数arg1和默认参数20。

此时funcB的声明应该怎么写?

阅读 2.2k
2 个回答

向funcB传入(arg1,arg2=arg2)时,调用funcA(arg1,arg2=arg2)
向funcB传入(arg1)时,调用funcA(arg1,arg2=20)

def funcA(arg1,arg2=20):
    pass
    
def funcB(arg1,**kwargs):
    funcA(arg1,**kwargs)
def funcA(arg1,arg2=20):
    pass
    
def funcB(arg1,arg2=None):
    kwargs = {}
    if arg2 is not None:
        kwargs['arg2'] = arg2    
    funcA(arg1,**kwargs)

帮楼上补充修改版本

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题