编程语言
首页 > 编程语言> > 使用可选参数调用方法的最pythonic方法是什么?

使用可选参数调用方法的最pythonic方法是什么?

作者:互联网

假设我有一个带有一些可选参数的方法.

def foo(a,b = 1,c = 2,d = 3)

如何调用它,以便如果我的变量为None或空字符串,则使用默认值?

像下面这样的条件似乎是一个可怕的解决方案:

if b and not c and d:
    foo(myA, b = myB, d = myD)
elif b and not c and not d:
    ...

在Java中,我会跳转到一个工厂,但看起来这就是默认情况下应该避免的情况.

解决方法:

我会改变foo,所以它用默认值替换空值.

def foo(a, b=None, c=None, d=None):
    if not b: b = 1
    if not c: c = 2
    if not d: d = 3

请注意,这会将所有“false-y”值视为默认值,不仅意味着None和”,还包括0,False,[]等.我个人会收紧界面并使用None,只有None作为默认值.

def foo(a, b=None, c=None, d=None):
    if b is None: b = 1
    if c is None: c = 2
    if d is None: d = 3

标签:python,python-2-7,optional-parameters
来源: https://codeday.me/bug/20190713/1450042.html