01
用做不定長參數名
可以接收多個參數值
案例1:比如我定義一個求和的函數,無論傳入幾個值,都可以計算出求和的結果
代碼1.1:
問題:以上代碼實現傳入2個參數值的和,但是如何我要求的是大于2個參數值的和,如:10+20+30=或者 1+2+3+4+5+..=這種情況下我們必須要重寫add方法,往里面去加參數名,但是這種情況下,擴展性太差,腳本的維護性也不好。
因此我們的不定長參數的出現,就可以在不重寫add方法的前提下,也能滿足求多個參數值的和。
代碼1.2:
總結:*num(不定長參數),可以接收0個或者N個值,接收的值會存儲在一個元組中;調用函數的時候,要使用位置傳值,也就是直接寫值就可以。
02
用做解包,將可迭代對象中的元素解包
案例2:比如我定義一個函數,無論傳入幾個值,都可以計算出從傳入值的和與乘積的結果,并獲取和與積的結果
代碼2.1:
總結:除了列表對象可以解包之外,任何可迭代對象都支持解包;可迭代對象包括元組、字典、集合、字符串、生成器實現了__next__方法的一切對象。但是字典解包后,只會把字典的 key 取出來,value 則丟掉了。
代碼2.2:
解包也可以用在參數值的傳遞中
代碼2.3:
總結:調用add方法時,直接傳入一個tpl元組,則*num會把整個元組值作為一個參數值傳入,就會變成((10,20),),那么對于add方法中的循環則無法計算結果。所以我們在調用函數時,將*tpl傳入,會現將這個元組整體解包為2個元素值傳入,用*num接收后就變成了(10,20)。這個時候對于add中的循環就可以去進行計算了。
03
常運用場景
結合DDT用作測試用例的多次執行
案例3:執行百度搜索,第一次搜索檸檬班,第二次搜索軟件測試
代碼3.1:
審核編輯:劉清
-
生成器
+關注
關注
7文章
319瀏覽量
21084 -
python
+關注
關注
56文章
4807瀏覽量
84970
發布評論請先 登錄
相關推薦
評論