附加到功能的默认参数

时间:2014-07-01 08:49:24

标签: python

是否可以附加到默认函数参数或从外部获取函数参数的值?

例如:

def foo(bar, foo="baz"):
    print(bar, foo)

foo("hello", "world") # print "hello world"
foo("hello", foo="world") # print "hello world" as well
foo("hello") # print "hello baz"
foo("hello", foo<append it>"bla") # how? want to print "hello bazbla"
print("default value of foo's foo parameter:", [magic here])

我不认为这是一个很好的做法,但我很好奇。

1 个答案:

答案 0 :(得分:1)

>>> foo.__defaults__
('baz',)

__defaults__属性 是documented here


因此,要使用默认值更改foo参数,可以使用字符串格式:

foo("hello", foo="{}bla".format(foo.__defaults__[0]))