什么是蟒蛇在下面的函数中使用等号(=)等号(=)函数参数在Python
res=cv2.bitwise_and(frame,frame,mask=mask)
我们为什么需要它mask= mask
? 谢谢
什么是蟒蛇在下面的函数中使用等号(=)等号(=)函数参数在Python
res=cv2.bitwise_and(frame,frame,mask=mask)
我们为什么需要它mask= mask
? 谢谢
在Python中,你可以定义可选的参数,如:
def func(par, mask=1):
pass
,当你调用func
功能,您可以选择指定参数mask
。
func(2,mask=2)
让我们假设你有打电话之前func
功能
,你可以这样调用
func(2,mask=mask)
回到你的问题我们有理由指定mask=mask
已分配值掩码变量而不只是调用像func(2,3)
这样的函数是我们可能有多个可选参数,如
def func2(par1,opt1=1,opt2=3):
pass
在这里,当你调用func2
并希望为par1 and opt2
你有这样func2(2,opt2=5)
第一个mask
是在函数定义中定义的变量。第二个mask
是你传递给函数的一个参数。 =
在那里,因为函数定义必须要求它在那里,因为它是一个默认参数。
你可以使用它的函数的参数的明确defenition调用传递价值。
例如你有一个功能defenition:
def add_action(action,time=datetime.now, mode=0):
在这个函数的时间和模式已经预定义的值(因为这个值可以是此功能最频繁使用),并在你的情况下要改变这种预定义值,你只能在需要的方向送他们:
add_action(action, datetime(2017, 08, 19), 1)
或通过其名称发送,如果要重新定义只有1个参数:
add_action(action, mode=2)
所以,时间会有预定义的值。你
也可以写功能,如:
def foo(par1, **kwargs)
这里PAR1是强制性的参数,以及其他参数,你将通过发送姓名的功能,将在** kwargs该actualy是关键字字典。
所以,如果你调用一个函数:
foo(value1, mode=1, date=now(), message='Hello')
在函数体** kwargs将有下一个值:
{ mode:1, date:datetime(2017, 08, 19, 14, 24, 56, 22393),//result of function now() message:'Hello' }
他们被称为默认参数 – Rahul
说得一般,这是一个_keyword argument_。但没有更多的上下文,这可能是我们可以真正告诉你的。 –
第一个掩码是一个命名参数,第二个掩码是你的代码中定义的一个变量。这是一种方法来传递[一些参数](https://docs.python.org/2/tutorial/controlflow.html#keyword-arguments) – PRMoureu