c 預設引數函式注意事項

2022-05-14 12:09:52 字數 803 閱讀 7203

再有預設引數的函式中,一般我們都把預設引數放在宣告處而不是定義處。

如果宣告和定義都有預設引數,編譯器將會報錯。

呼叫含有預設實參的函式時,我們可以包含引數,也可以省略。

有預設引數的函式,我們可以不帶引數呼叫:

所以,在類裡面特別要注意,建構函式如果沒有引數,此時又存在有所有引數都有預設引數的建構函式,也將會報錯。

如果是宣告的時候沒有預設引數,而定義的時候有預設引數(宣告出現在定義前),編譯器將不能識別預設引數。

但是如果有預設引數函式定義出現在宣告前面,預設引數則有效。

這個例子說明了,函式的預設引數,編譯器是選擇它第一次看到的宣告為準的,定義是一種特殊的宣告。

那麼,我們應該採取,宣告寫預設引數,定義不寫預設引數的建議。

如果函式有預設引數了,那麼該預設引數後面的引數,必須也有預設值。

例如乙個函式有三個引數,順序編排為1 ,2 ,3,且都有預設引數,呼叫的時候,只可以省略尾部的引數。

在這個例子中,不可以省略第乙個引數或者1,2都省略,也不可以只省略2的引數,但是可以只寫1的引數,省略2,3的引數,也可以只寫1,2,省略3的引數。

區域性變數不能作為預設引數也需要注意。

python 預設引數注意事項

必須保證帶有預設值的預設引數在引數列表末尾 所以,以下定義是錯誤的!def print info name,gender true,title 如果有多個預設引數,需要指定引數名,這樣直譯器才能夠知道引數的對應關係!def print info name,title gender true para...

python定義函式時預設引數注意事項

如果在呼叫乙個函式時,沒有傳遞預設引數,則函式內的預設引數是對函式的預設引數屬性 defaults 的引用,如def func arg1 呼叫func時如果沒有傳參,上面的arg1就是func.defaults 0 的引用 沒傳遞預設引數,會發生以下情況 這樣在有些情況下會導致邏輯出錯的,例如 de...

python定義函式時預設引數注意事項

如果在呼叫乙個函式時,沒有傳遞預設引數,則函式內的預設引數是對函式的預設引數屬性 defaults 的引用,如呼叫func時如果沒有傳參,上面的arg1就是func.defaults 0 的引用 沒傳遞預設引數,會發生以下情況 這樣在有些情況下會導致邏輯出錯的,例如 func arg1 is not...