当前位置: 首页 > news >正文

网站开发 商标注册免费友情链接

网站开发 商标注册,免费友情链接,推广的几种方式,麦客crm文章目录 前言一、*args 和 **kwargs 是什么?二、*args 的用法打包参数:将不定数量的参数传递给一个函数拆分参数:调用一个函数 三、**kwargs 的用法打包参数:将不定数量的参数传递给一个函数拆分参数:调用一个函数 四…

文章目录

  • 前言
  • 一、*args 和 **kwargs 是什么?
  • 二、*args 的用法
    • 打包参数:将不定数量的参数传递给一个函数
    • 拆分参数:调用一个函数
  • 三、**kwargs 的用法
    • 打包参数:将不定数量的参数传递给一个函数
    • 拆分参数:调用一个函数
  • 四、位置参数、*args 和 **kwargs 的组合使用


前言

Python中传递可变参数的方式有两种,位置参数(positional argrment)和关键词参数(keyword argument)。
本文主要讲魔法参数 *args和 **kwargs 的如何使用,如何将不定数量的参数传递给一个函数和调用一个函数。


一、*args 和 **kwargs 是什么?

  • *args 和 **kwargs 都是python中的可变参数。
  • *args可以用来表示任何多个无名参数,本质上是tuple类型
  • **kwargs可以用来表示关键字参数,本质上是dict类型
def func1(*args,**kwargs):print(type(args))print(args)print(type(kwargs))print(kwargs)
func1(1,2,'hello world',a=4,b=6,c='oo',d=[])

在这里插入图片描述

  • *args和 **kwargs 重要是前面的*,你也可以写 *var和**vars,而写成 *args和 **kwargs 只是程序员通俗写法。
def func1(*var,**var2):print(type(var))print(var)print(type(vars))print(vars)
func1(1,2,'hello world',a=4,b=6,c='oo',d=[])

运行结果跟上面的使用*args和 **kwargs的一致。

  • *args参数必须在**kwargs前面,因为位置参数必须在关键词参数前面。

如果把**kwargs放在*args前面,会报错:无效引用。

def func1(**kwargs,*args):print(type(args))print(args)print(type(kwargs))print(kwargs)
func1(a=4,b=6,c='oo',d=[],1,2,'hello world')

在这里插入图片描述


二、*args 的用法

打包参数:将不定数量的参数传递给一个函数

举例1: 将非键值的可变数量的参数列表给一个函数。

def func1(*args):for i in args:print("arg throuth args:{}".format(i))
func1(1,2,3,4,5)

在这里插入图片描述

举例2: 函数接受实参时,按顺序分配给函数形参,如果遇到带∗的形参,那么就把还未分配出去的实参以元组形式打包(pack),分配给那个带∗的形参。

def func1(x,*args):print("a:{}".format(x))print("number:{}".format(args))print(type(args))
func1(1,2,3,4,5)

在这里插入图片描述

从例子中可以看出,args接受了实参变成了(2,3,4,5),第一个参数1被形参接受走了。

def func1(x,y,*args):print("a:{}".format(x))print("b:{}".format(y))print("number:{}".format(args))print(type(args))
func1(1,2,3,4,5)

在这里插入图片描述

从例子中可以看出,args接受了实参变成了(3,4,5),第一个参数1被形参x接受走了,第二个参数2被形参y接受走了。

举例3: 如果把*args放在位置参数前面,需要将在参数传入时,明确定义 *args后面的位置参数定义,否则会报错。

把 *args放在前面

def func1(*args,x,y):print("a:{}".format(x))print("b:{}".format(y))print("number:{}".format(args))print(type(args))
func1(1,2,3,x=4,y=5)

在这里插入图片描述

把 *args放在中间

def func1(x,*args,y):print("a:{}".format(x))print("b:{}".format(y))print("number:{}".format(args))print(type(args))
func1(1,2,3,4,y=5)

在这里插入图片描述

拆分参数:调用一个函数

*args是把打包了的参数拆成单个的,依次赋值给函数的形参。

举例

def func1(arg1,arg2,arg3):print(arg1,'\n',arg2,'\n',arg3)
args=[1,2,3]
func1(*args)

在这里插入图片描述


三、**kwargs 的用法

打包参数:将不定数量的参数传递给一个函数

**kwargs可以用来发送一个不定长度键值对的字典参数给一个函数。

举例

def func1(**kwargs):for key,value in kwargs.items():print("{0}=={1}".format(key,value))
func1(a=4,b=6,c='oo',d=[])

在这里插入图片描述

拆分参数:调用一个函数

**kwargs是把字典的键值拆成单个的,依次赋值给函数的形参。

举例

def func1(arg1,arg2,arg3):print(arg1,'\n',arg2,'\n',arg3)kwargs={'arg1':1,'arg2':2,'arg3':3}
func1(**kwargs)

在这里插入图片描述


四、位置参数、*args 和 **kwargs 的组合使用

位置参数、*args、**kwargs 三者的顺序 必须是: 位置参数、*args、**kwargs

举例

def func1(x,*args,**kwargs):print(x)print(args)print(kwargs)
func1(1,2,3,4,a='hh',b='worl',c='soda')

在这里插入图片描述


参考文档:
https://blog.csdn.net/GODSuner/article/details/117961990
https://zhuanlan.zhihu.com/p/51236818

http://www.tj-hxxt.cn/news/127770.html

相关文章:

  • 先做个在线电影网站该怎么做百度手机助手app下载官网
  • 做设计那个素材网站最好无代码建站
  • 推广联系方式抖音seo优化软件
  • 企业网站也需要在公安做备案么百度top风云榜
  • 中山专业网站建设百度上传自己个人简介
  • 自己做行程的网站免费的推广网站
  • 建站之星备案培训机构是干什么的
  • 设计海报的软件站长工具seo综合查询下载
  • 企业网站建设的缺点百度外推排名
  • 互联网站建设机构今日头条(官方版本)
  • wordpress 不显示缩略图系统优化是什么意思
  • 如何鉴别网站有没有做301重定向app开发费用标准
  • 中小企业网站制作推广方法推广网站
  • 做购物网站的费用泰州seo网站推广
  • 自己做的网站能放到网上么网络媒体发稿
  • 网站建设需要掌握什么技术最近三天发生的重要新闻
  • 绝缘子网站建设seo中国是什么
  • 如何用webstrom做网站网站网络营销推广
  • 网站内容设计北京网站制作推广
  • 做查询网站 发布数据安徽seo团队
  • 国内WordPress分享插件深圳网络优化公司
  • 浙江省建设厅信息中心网站商业网站
  • 宁波网站推广运营公司电子商务网站建设与管理
  • 西安关键词网站排名深圳seo秘籍
  • 酒业网站模板下载促销活动推广语言
  • 大型网站建设费用日照seo公司
  • 做的网站显示不了背景图片如何进入网站
  • 用自己的电脑做网站划算网站建设制作模板
  • 做影视网站需要境外网络优化器下载
  • 中国建设通官方网站足球排名最新排名世界