這個庫的文檔似乎沒有指定正式的語法,據我所知,然而許多開發人員會認識到使用方括號表示可選字段/參數的convention。
如果我們遵守這個約定,然後打破他們提供的定義:
cv2.bitwise_and(src1, src2[, dst[, mask]]) → dst
這表示該函數bitwise_and
需要src1
和src2
作爲輸入無條件。 dst
出現在[...]
塊內,表明它是可選的。 mask
參數顯示爲另一個嵌套在dst
可選塊內的可選塊,這表明它不僅是可選塊,而且它只在先前在外部塊中指定dst
時才相關。
所以這個文件表明,以下都是有效的輸入:
cv2.bitwise_and(src1, src2)
cv2.bitwise_and(src1, src2, dst)
cv2.bitwise_and(src1, src2, dst, mask)
但暗示這將是無效的(在某些不確定的方式):
cv2.bitwise_and(src1, src2, mask)
但是,如果我們看一下實際 Python函數定義如下:
def bitwise_and(src1, src2, dst=None, mask=None): # real signature unknown; restored from __doc__
""" bitwise_and(src1, src2[, dst[, mask]]) -> dst """
pass
現在我們可以清楚地看到dst
和mask
是可選的(默認爲None
)。嚴格地說,我們可以在不提供dst
的情況下提供mask
,但是文檔是暗示對我們來說,如果沒有指定dst
,它將不會被使用。
猜測:我對這個庫一點都不熟悉,但我猜想dst
是可選的,如果沒有提供,輸出將從函數返回。如果是的話它可能是mask
可實際上dst
提供獨立的,如果是的話我會認爲,一個更好的文檔字符串本來:
cv2.bitwise_and(src1, src2[, dst][, mask]) → dst
但同樣因爲沒有正式定義語法文件它是開放的解釋和猜測。
雖然他們沒有在他們的文檔中說明,但按照慣例,方括號表示可選字段/參數 – FujiApple
在這個唯一的掩碼中是可選的,所以不應該是cv2.bitwise_and(src1,src2,dst,[mask]) →dst ?? –