python可变参数和关键字参数位置_python 参数笔记 -- 位置参数 关键字参数 命名参数 形式参数 默认参数 可变参数 可选参数 位置顺序...

这么多名称,python到底有几种参数:

2种:普通参数(即位置参数,靠位置先后来指定参数),关键字参数(即命名参数,靠名字来指定参数)。

常说的可变参数也就是普参的集合,*args。

常说的关键字参数一般指关键字参数集合,**kwargs。

参数优先级:普通参数(位参)> 普参集 > 关键字参数 > 关参集:

def add(a, *args, b=2, **kwargs):print('a:', a)#普通参数print('args:', args)#普参集print('b:', b)#关键字参数,在定义函数时使用就是默认参数print('kwargs:', kwargs)#关参集

add(1, 2, 3, b=4, c=5, d=6)

输出>>a: 1args: (2, 3)

b:4kwargs: {'c': 5, 'd': 6}

具体如下:

形参:形式参数:parameter;(在定义函数时指定的参数形式,区别于实参,跟位参关参等不在一个维度。如:

defadd(a,b): #这里的a,b为形参(换个维度也可以称为位置参数)return a+b

实参:实际参数(或直接称参数,以下同理):argument(简:arg,复:args);(在调用函数时指定的参数值,如:

c = add(1, 2) #这里的1,2为实参(换个维度也可以称为位置参数)

参考:

默认参数:形参里的关键字参,如

def c(a=1, b): #a为默认参,b为位参pass

可变参数:即可选参数,即参数集,如*args,**kwargs, 即调用函数时可随意填入*args,**kwargs中的0个或多个,具体参考下文。

普通参数:即位置参数,最普通常用的参数形式, 区别于关键字参数,顾名思义,是靠位置来明确参数指定的。即不靠名字标识符,就一个光杆。

位置参数集:把位参打包,放入*args元组;(args只是名称,可换成其他任意合法标识符,如:*my_args)

def c(*my_argsss): #类型被指定为元组

print(type(my_argsss))

c(1,2)

输出>>

c(1)

输出>>

命名实参:关键字参数:keyword_argument(简:kwarg,复:kwargs);(区别于位参,关参靠名字来指定参数,在定义函数和调用函数的时候指定了名字(标识符),如:

def add(a, b=1): #a为位参,b为默认参(注意顺序,不能把位参放到关键参后面)

return a+b

add(2, b=5) #调用的时候,b=5就是关键参,这里b为标识符(identifier)

def c(**k):

print(type(k)) #类型被指定为字典

c(a=1, b=2) #a,b为标识符

输出>>

c(**{'a':1,'b':2})

输出>>

c({'a':1,'b':2})

输出>>TypeError: c() takes 0 positional arguments but 1 was given(类型错误:c()未定义位置参数,但接收到了 1 个位置参数)

#{'a':1,'b':2}被当成一个参数,这个参数是字典,这个字典没有标识符,所以是位参;

#**{'a':1,'b':2}被解析成多个参数,参数是字典里的key=value,标识符为key,实参为value

命名实参集:关键字参数集:**kwargs;(kwargs只是名称,可换成其他任意合法标识符,如:**some_kws。具体如下:

defadd(a, b):return a +b

add(a=1, b=2)

输出>>3add(**{'a':1,'b':2})

输出>>3

def add(**k):

returnk['a']+k['b']

add(a=1,b=2)

输出>>3add(**{'a':1,'b':2})

输出>>3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501380.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android studio的设置界面介绍

1.编译按钮 2.运行选择按钮 3.运行按钮 4.设置界面 5.设置页面布局 6.系统保存设置 7.密码设置 8.下载按钮: 9.数据传递: 11.改色: 12.自定义完成指定代码的检查 13.Notifications 14.宏设置 15.SDK管理,可以直接导入自己的SDK&am…

打印机显示rpc服务器,win10打印机出现RPC服务器不可用的处理办法

win10打印机出现RPC服务器不可用的处理办法?大家在使用打印机打印的时候,多多少少都会碰到一些这样那样的故障。这不就有win10系统的网友,在使用打印机打印的时候,提示:RPC服务器不可用。出现这样的故障,大…

Android Studio的快捷键图文并茂

首先在设置界面可以看到很多快捷键,并支持将之前软件的快捷键习惯导入安卓开发中,默认的就是安卓开发的快捷键,所以基本不需要一些学习成本 双击shirf可以跳出查找界面 修改快捷键 按住ctrlshirftalt并用鼠标单击要添加代码的位置。就可以实现…

龙族幻想服务器维修到几点,【龙族幻想】4月1日维护公告

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼亲爱的玩家:我们计划在4月1日凌晨3:00-8:00进行一次版本更新。建议您提前准备,及时下线以免造成不必要损失。新服公告:我们将于2021年4月3日11点开放2组全新服务器!具体服务器名如下&…

python中str和input_python中input()与raw_input()的区别分析

使用input和raw_input都可以读取控制台的输入,但是input和raw_input在处理数字时是有区别的 纯数字输入 当输入为纯数字时 input返回的是数值类型,如int,float raw_inpout返回的是字符串类型,string类型 输入字符串为表达式 input会计算在字符…

解决Android studio 加载不出网络图片的步骤

第一:网络问题,好像连家里的wifi没有手机的wifi能下载那个github的压缩包, 第二:版本问题,我把导入的包降低版本了,系统匹配成功, 第三:布局的时候需要把宽度高度的比例和加载的网…

list ajax封装,util-pagelist_基于layui封装的ajax分页列表

/*** layui分页列表模板引擎(使用时请使用new Pagelist(), 将每个分页模板当成一个独立的实例)* param tplid 模板id* param viewid 渲染模板容器的id* param pageid 分页容器id* param httpurl 请求接口的url* param param 请求接口的参数* param method 接口请求方式(get、po…

现代操作系统初理解

1.现代操作系统是由中断驱动的:如果没有进程要执行,没有I/O 设备要服务,也没有用户请求要响应,操作系统将会静静地等待某件事件的发生。 2.操作系统和用户共享了计算机系统的硬件和软件:既然是共享了,就可…

python没有菜单栏_解决Jupyter Notebook开始菜单栏Anaconda下消失的问题

出现的问题状况是:在Anaconda文件下,少了Jupyter Notebook快捷键,不然每次都要打开Anaconda Navigator再打开Jupyter Noterbook,有点麻烦。为了避免将Anaconda软件卸载重装才出现Jupyter Notebook,就去寻找解决办法。首…

小米机顶盒显示网络无法连接服务器,小米盒子无线网络连接不上怎么回事 - 卡饭网...

无线网络连接不上怎么回事,如何解决无线网络连接不上怎么回事,如何解决 无线网络连接不上怎么回事,如何解决,很多电脑用户可能会遇到这个问题。 一:先检查下你的无线网络开关是否打开,没打开请打开 二:检查你的无线网络…

操作系统提供什么服务、如何服务?

操作系统的服务: 1.用户界面:一种是命令行界面,就像黑窗的命令行输入,通过命令行执行文件或者文档,一种是图形用户界面,可以控制更多的I/O操作或者菜单选择 2.程序执行:操作系统在程序底层&am…

python创建变量_【转载】 Python动态生成变量

用Python循环创建多个变量, 如创建 a1 、a2 、a3 、a4 、a5 或 self.a1 、self.a2 、 self.a3 一. 可以通过python的内置函数locals 来完成 locals是python的内置函数,他可以以字典的方式去访问局部和全局变量。 python里面用名字空间记录着变量&#xf…

联想服务器忘记系统登录密码,联想路由器登陆密码忘记了怎么办

路由器是互联网系统中的重要组成部分,是连接因特网中局域网和广域网的设备,它可以根据信道实际的情况选择最合适的路径,那么你知道联想路由器登陆密码忘记了怎么办吗?下面是学习啦小编整理的一些关于联想路由器登陆密码忘记了的相关资料&…

中断、异常、处理对于操作系统的概念

为什么我们的应用程序不直接去访问我们的外部设备,为什么要通过操作系统去执行 1.操作系统对于计算机来说是被内核信任的第三方软件 2.只有内核可以执行特权指令 3.应用程序实际上是不可信任的 中断、异常和系统调用三者在操作系统中有何作用? 源头不…

编写五子棋的完整python代码_python实现五子棋游戏

本文实例为大家分享了python实现五子棋游戏的具体代码,供大家参考,具体内容如下 话不多说,直接上代码: 全部工程文件,在GitHub:五子棋 效果预览:#!/usr/bin/env python3 #-*- coding:utf-8 -*- …

服务器网站显示多协议,解决高防IIS8服务器https协议多个同时访问的解决方法

iis提示:至少一个其他网站正在使用同一个https绑定,而次绑定用另一个证书配置。确实要重用https绑定并将其他网站重新指定为使用新证书吗?网友解释:SNI指是一项用于改善SSL/TLS的技术,在SSLv3/TLSv1中被启用。它允许客户端在发起S…

如何计算实际物理地址?

1.确认物理地址: 2.由逻辑地址的页号去页表中查找对应的物理内存的页号 3.通过物理页号加上偏移量得到实际物理地址 例如:已知每页大小为1024byte(逻辑页表和实际内存分页的大小都是1024byte) 那么(3,1023&#xf…

python高效处理文件_使用Python语言高效地处理一个文本文件

使用Python语言高效地处理一个文本文件: # -- encoding: utf-8 -- # 脚本功能:在指定的文件中查找指定的字符串 # 此脚本接受两个参数 # 参数1:指定一个文件名,在这个文件中查找字符串 # 参数2:指定一个字符串用于查找…

zabbix加vm虚拟服务器,zabbix监控vmware exsi主机的图文步骤

1、进入虚拟化vcenter中,用浏览器登录(客户端没找到地方设置),新建一个只读用户zabbix。2、 登录vcenter客户端,将新建用户授权为只读授权过后可以使用新账号登录测试一下。3、开启exsi主机Managed Object Browser (MOB)功能,没有就默认开着的…

内存的覆盖和交换

覆盖:是程序员手动将程序内的互不影响的各个模块放在内存中,需要程序员自己把整个程序划分为若干个小的功能模块,并 交换:由操作系统完成程序之间的swap out 和 swap in(由操作系统内部完成) 未完待续