什麼是蟒蛇在下面的函數中使用等號(=)等號(=)函數參數在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