首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何指示函数应该使用可选参数的默认值而不忽略它?

如何指示函数应该使用可选参数的默认值而不忽略它?
EN

Stack Overflow用户
提问于 2017-06-26 09:40:32
回答 5查看 99关注 0票数 2

我试图按照干的原则编写不重复的代码。

考虑包含许多参数的函数调用,包括强制性的和可选的。在某些情况下,我希望为可选参数指定一个值,而在另一些情况下,我希望将该值保留为默认值。为了简化我的问题:

代码语言:javascript
运行
复制
def func(a, b=2):
    print("b = {}".format(b))

avalue = 1
condition = 2
arg = None  # <-- Means: "use default" 
if condition == 1:
    arg = 3

func(avalue, b=arg)

输出

代码语言:javascript
运行
复制
b = None

预期输出

代码语言:javascript
运行
复制
b = 2

因此,我试图避免像这样两次编写函数调用的代码:

代码语言:javascript
运行
复制
if arg:
    func(avalue, b=arg)
else:
    func(avalue)

在Python中有可能吗?

EN

Stack Overflow用户

发布于 2017-06-26 09:48:54

那麽:

代码语言:javascript
运行
复制
def func(a, b=None):
    if not b:
        b = 2
    print("b = {}".format(b))

avalue = 1
condition = 2
arg = None  # <-- Means: "use default" 
if condition == 1:
    arg = 3

func(avalue, b=arg)

然而,在这种情况下,缺省值并没有按其应有的方式使用,当您有两种不同的方法时,通常会保留默认值,其中一种方法的工作方式不同,而另一种方法则不应该用开关进行加/减:

代码语言:javascript
运行
复制
def maths(a,b,sub=false):
    result = a + b
    if sub:
        result = a - b
    return result
票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44756825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档