我希望能够将额外的参数传递给函数,如果它们存在,则相应地执行操作(比如从函数中打印出来的东西),如果这些标志不存在,只需正常执行函数而不打印额外的信息,我该如何处理?
干杯
答案 0 :(得分:7)
我们说x
,y
和z
是必需的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)