Python 3:更改现有函数参数的默认值?

时间:2013-01-30 16:30:20

标签: python parameters python-3.x arguments default

我正在创建一个程序,最终会有500个print函数调用,还有一些其他函数。每个函数每次都会采用完全相同的参数,如下所示:

print(a, end='-', sep='.')
print(b, end='-', sep='.')
print(c, end='-', sep='.')
print(..., end='-', sep='.')

有没有办法更改print函数参数的默认值?这样我每次都不必输入end='-', sep='.'

3 个答案:

答案 0 :(得分:15)

您可以使用functools.partial()定义print()的特殊版本,为其提供默认参数:

from functools import partial

myprint = partial(print, end='-', sep='.')

然后myprint()会在整个代码中使用这些默认值:

myprint(a)
myprint(b)
myprint(c)

答案 1 :(得分:3)

您还可以使用lambda函数:

my_print = lambda x: print(x, end='-', sep='-')
my_print(a)
my_print(b)
my_print(c)

答案 2 :(得分:2)

还有一种方法可以使用多个参数并可以使用lambda:

my_print = lambda *args: print(*args, end="-", sep=".")