預設引數,命名引數,可變引數

2021-10-08 21:19:23 字數 739 閱讀 6398

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 究其原因,是函式也是物件,預設引...