使用这个脚本:分配默认参数值
color = 'blue'
def say_color(color):
print 'The color is: ' + color
say_color()
在这里,我试图让say_color
而不传递一个参数进行处理,并将结果作为默认的颜色(蓝色)。但是,如果指定了颜色,则不会使用蓝色,而是使用给定的字符串。
这是如何完成的?
使用这个脚本:分配默认参数值
color = 'blue'
def say_color(color):
print 'The color is: ' + color
say_color()
在这里,我试图让say_color
而不传递一个参数进行处理,并将结果作为默认的颜色(蓝色)。但是,如果指定了颜色,则不会使用蓝色,而是使用给定的字符串。
这是如何完成的?
def say_color(color='blue'):
print 'The color is: ' + color
say_color()
default_color = 'blue'
def say_color(color=default_color):
print 'The color is: ' + color
则:
say_color() # default_color is used
say_color('red')
产量:
The color is: blue
The color is: red
如果不指定您呼叫color
,该default_color
会在你say_color
使用功能。如果你做在呼叫中指定一个color
,那么它将覆盖你的默认值。
附录:有关如何以及何时将这些值分配/绑定的更多技术性说明/背景,请参阅下面的@HughBothwell(谢谢!)的信息性评论。
用这种方式书写可能会引起误解。当say_color被定义为*时,'color'被绑定到'default_color' *的值。稍后将default_color设置为不同的值将不会更改该函数的默认颜色... *除非* default_color引用了可变对象(列表,字典,类等),在这种情况下,对象内容的更改**可传播到该功能可能是意想不到的和令人困惑的。 –
@ user1417933只是一个友好的笔记,如果这些答案中的任何一个提供解决您的问题,请考虑接受一个 - 谢谢。 – Levon