函数中的可选标志

时间:2010-12-10 11:07:55

标签: python

我希望能够将额外的参数传递给函数,如果它们存在,则相应地执行操作(比如从函数中打印出来的东西),如果这些标志不存在,只需正常执行函数而不打印额外的信息,我该如何处理?

干杯

5 个答案:

答案 0 :(得分:7)

我们说xyz是必需的argruments,opt是可选的:

def f(x, y, z, opt=None):
  # do required stuff
  if opt is not None:
    # do optional stuff

可以使用三个或四个参数调用它。你明白了。

答案 1 :(得分:1)

您也可以使用关键字参数:

def f(x, y, **kwargs):
    if 'debug_output' in kwargs:
        print 'Debug output'

然后你可以拥有任意多的人。

f(1,2, debug_output=True, file_output=True)

答案 2 :(得分:0)

def fextrao(x, y, a=3):
  print "Got a", a
  #do stuff

def fextrad(x, y, **args):
  # args is a dict here
  if args.has_key('a'):
    print "got a"
  # do stuff here

def fextrat(x, y, *args):
  # args is a tuple here
  if len(args) == 1:
    print "Got tuple", args[0]
  #do stuff

fextrao(1, 2)
fextrao(1, 2, 4)
fextrad(1, 2, a=3, b=4)
fextrat(1, 2, 3, 4)

答案 3 :(得分:0)

您可以为函数参数设置默认值,类似于可选参数。像这样:

def myFunction(required, optionalFlag=True):
    if optionalFlag:
        # do default
    else:
        # do something with optionalFlag

答案 4 :(得分:0)

# z is the optional flag
def sum(x,y,z = None):
    if z is not None:
        return x+y+z
    else:
        return x+y

# You can call the above function in the following ways
sum(3, 4, z=5)

sum(x=3, y=4, z=5)

# As z is optional, you can also call using only 2 function inputs
sum(2,3)