args和kwargs以及argv用法
生活随笔
收集整理的這篇文章主要介紹了
args和kwargs以及argv用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
當函數的參數不確定時,可以使用*args 和**kwargs,*args 沒有key值,**kwargs有key值。
下面的參數中,farg只是一個普通的變量名
*args和**kwargs可以看做是C++中的指針和二級指針來使用。
*args代表list類型,也就是說,入口參數中,填入一個*args可以當做多個參數來使用
**kwars代表字典類型,在入口參數中使用一個**kwars可以當做多個“key-value數值對”來使用
?
def?fun_var_args(farg,?*args):??print?"arg:",?farg??for?value?in?args:??print?"another?arg:",?value??fun_var_args(1,?"two",?3)?#?*args可以當作可容納多個變量組成的list???
result:
?
**kwargs:
def?fun_var_kwargs(farg,?**kwargs):??print?"arg:",?farg??for?key?in?kwargs:??print?"another?keyword?arg:?%s:?%s"?%?(key,?kwargs[key])??fun_var_kwargs(farg=1,?myarg2="two",?myarg3=3)?#?myarg2和myarg3被視為key,?感覺**kwargs可以當作容納多個key和value的dictionary???
result:
?
也可以用下面的形式:
?
def?fun_var_args_call(arg1,?arg2,?arg3):??print?"arg1:",?arg1??print?"arg2:",?arg2??print?"arg3:",?arg3??args?=?["two",?3]?#list??fun_var_args_call(1,?*args)??result:
?
?
?
def?fun_var_args_call(arg1,?arg2,?arg3):??print?"arg1:",?arg1??print?"arg2:",?arg2??print?"arg3:",?arg3??kwargs?=?{"arg3":?3,?"arg2":?"two"}?#?dictionary??fun_var_args_call(1,?**kwargs)??result:
?
#----------------------------------------------------------------------------------------------------------------------------------------
?
import sys a=sys.argv[2] print(a)#----------------------------------------------------------------------------------------------------------------------------------------
附錄是三個例子,args例子:
def f4(*args):print("f4...")print("type(args)",args)f4() print("-----------------------") f4(1) print("-----------------------") f4(1,2) print("-----------------------") f4(1,2,3,'a',[1,2,3])kwargs例子1:
def f5(**kwargs):print("f5...")print(type(kwargs),kwargs) f5() f5(name="旺財",age=20)?
kwargs例子2:
def f7(**kwargs):print(kwargs)info={"sid":1,"sname":"老王","sage":20} f7(sid=info["sid"],sname=info["sname"],sage=info["sage"]) f7(**info)?
?
?
?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的args和kwargs以及argv用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 家用电器用户行为分析与事件识别代码详解+
- 下一篇: 深圳乐易网络有限公司机试题String