def sayname(name:
string
="pk"):
unit=
sayname(
)//其中預設引數為pk,所以此時輸出pk
sayname(
"dog"
)//此時傳入引數dog,那麼就以你當前傳入的引數為準,輸出dog
def speed(distance:
float
,time:
float):
float
=println(speed(
100,10)
)//可以直接按照函式定義時引數的順序寫,不用寫傳參名
println(speed(distance =
100,time =10)
)println(speed(time =
10,distance =
100)
)//呼叫函式時可以與定義函式傳入引數的順序不同,此時要將傳參的名字對應好
def sum(numbers:
int*)=
result
}//無論此時傳入多少引數,都可以進行運算,這就是可變引數
println(sum(1,
3,4)
) println(sum(1,
3,4,
5,6,
7))
可選引數與命名引數 可變數量的引數
一.可選引數與命名引數 可選引數 可以為部分或者全部形參分配預設值.然後,呼叫這些方法的 可以選擇不指定部分實參,接受其預設值.命名引數 在使用可選引數時,可以通過制定引數名稱的方法為其傳遞實參.二.準則與規則 有預設值的引數必須放在沒有預設值的所有引數之後。預設值必須是編譯時能確定的常量值。例如 ...
函式的預設引數的大坑,引數的可變引數
廖雪峰的官網 預設引數很有用,但使用不當,也會掉坑里。預設引數有個最大的坑 在多次呼叫函式的過程中,預設引數的值可能在不知不覺中改變 這個,跟c 很不一樣。演示如下 def add end l return l 當你正常呼叫時,結果似乎不錯 add end 1,2,3 1,2,3,end add e...
小心可變的預設引數
python中的可變引數需要注意,這個問題看起來雖小,但是當其出現,就可能壓根不知道問題到底出現在 為此而揪心費腦的花去幾天的時間也是極有可能的。例如 def f x print x f f f 你以為的結果可能是,1 1 1 而實際的結果是 1 1,1 1,1,1 究其原因,是函式也是物件,預設引...