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
python可变参数和关键字参数位置_python 参数笔记 -- 位置参数 关键字参数 命名参数 形式参数 默认参数 可变参数 可选参数 位置顺序...相关推荐
- python通过封装可以实现代码复用_Python学习笔记(五)函数和代码复用
函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Python提供了许多内建函数,比如print().同样,你也可以自己创建函数, ...
- python带参数装饰器 函数名_python 全栈开发,Day11(函数名应用,闭包,装饰器初识,带参数以及带返回值的装饰器)...
一.函数名应用 函数名是什么?函数名是函数的名字,本质:变量,特殊的变量. 函数名(),执行此函数. python 规范写法 1. #后面加一个空格,再写内容,就没有波浪线了. 2.一行代码写完,下面 ...
- python里的关键字有哪些_Python中的yield关键字做了什么?
Python中的yield关键字做了什么 要理解yield做了什么,就必须明白生成器(generators)为何物,而在明白生成器之前还要知道迭代器(iterables). 1.迭代器 当我们创建一个 ...
- python中的global是什么意思_Python中的global关键字,你了解吗?
前言 今天来了解下 Python 中的 global 关键字. Python变量的作用域 实战案例演示之前,先要了解下 Python 的作用域. 曾经在闭包的文章 <python小课堂26 - ...
- python关键字中文意思_python解析URL中文关键字
搜索引擎或者APP搜索时,其实生成的http链接中基本都带有UTF8或者其他编码的中文关键字,目前只做了UTF8的,其他编码可以通过字符范围筛选. 以下为解析方法: import urllib imp ...
- python语言关键字有哪些_Python之33个关键字是哪些
Python之33个关键字是:1.内置常量[False.None.True]:2.逻辑与.或.非[and or not]:3.判断与循环[if elif else,for while break co ...
- python函数第二次运行报错_Python学习笔记2-函数、高级特性
函数 调用函数 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数 >>> abs(100) 100 >>> abs(-20) 20 ...
- python 依据某几列累加求和_Python爬虫笔记:爬取单个页面
前言 学习Python爬虫技术也是一件需要大量实践的事情,因为并不是所有的网站都对爬虫友好,更多的一种情况是网站为了限制爬虫不得不在最小化影响用户体验的前提下对网站访问做出一定的限制,最常见的就是一些 ...
- python爬虫爬取多个页面_Python爬虫笔记:爬取单个页面
前言 学习Python爬虫技术也是一件需要大量实践的事情,因为并不是所有的网站都对爬虫友好,更多的一种情况是网站为了限制爬虫不得不在最小化影响用户体验的前提下对网站访问做出一定的限制,最常见的就是一些 ...
最新文章
- TCP/IP详解--学习笔记(6)-UDP协议
- 一文读懂云上用户如何灵活应用定制化网络服务
- 在python3中print作为函数存在_Python3中的print函数
- 关于Spring AOP,除了动态代理、CGLIB,你还知道什么?
- python将空格变成换行_Python基础之PEP8规范(代码写作规范)
- ERROR Could not find value for key log4j.appender.Console
- 选数 2002年NOIP全国联赛普及组
- SVN仓库解决APIcloud2检出错误
- python爬虫之模拟登陆(CSDN篇)
- Unity3d的ShadeSH9环境光的球谐函数的应用
- 6070. 计算字符串的数字和
- 【css】鼠标禁用样式
- Wordress博客添加音乐播放器插件
- 【Proteus仿真】Arduino UNO+uln2003驱动步进电机+按键启保停正反转控制
- 2021-07-04——在线考试系统设计
- 可以播放音乐的微信小程序源码(仿Apple音乐)
- 摄像头8mm可以看多远_监控摄像头有多少种,如何来选型
- SAP PS 第12节 PS常用BAPI调用示例
- 1.3 电功率和能量
- java-php-python-ssm商超零售送货到家购物系统计算机毕业设计
热门文章
- 程序猿的日常——JVM内存模型与垃圾回收
- Unity3d—做一个年月日选择器(Scroll Rect拖动效果优化)— 无限滚动 + 锁定元素...
- 织梦后台如何生成站点地图sitemap.xml
- 面试题——面经题目(1)
- MATLAB高光谱图像构建KNN图
- 图像处理理论-颜色模式
- MYSQL--一条SQL查询语句是如何执行的?
- jsp内置对象--application
- oracle.01081 cannot,ORA-01081: cannot start already-running ORACLE - shut it down first
- 查找会议论文的会议地址