Python 参数使用总结
Python 中参数的传递非常灵活,不太容易记住理解,特整理如下备忘:
普通参数
即按照函数所需的参数,对应位置传递对应的值,可以对应 Java 中的普通参数
def max(a, b):
if a > b:
return a
else:
return b max(5, 13) # = 13
默认参数
可以对位置参数中的某个参数设置默认值,设置了默认值的参数在调用时可以不传递
此时需要注意,默认参数只能在必选参数后面
def max(a, b=0):
if a > b:
return a
else:
return b max(5, 13) # = 13
max(5) # = 5
max(-6) # = 0
当有多个默认参数时,调用参数传递的值会按照顺序赋值,也可以通过指定参数值为特定参数赋值
def position(x, y=1, z=0):
print('x:', x, 'y:', y, 'z:', z) position(5) # x=5, y=1, z=0
position(5, 6) # x=5, y=6, z=0
position(5, z=6) # x=5, y=1, z=6
可变参数
即传递的参数个数不确定,可以对应为 Java 中的可变参数,类似传递了一个 list 或 tuple
可变参数只能出现在必选参数和默认参数后面
def max(*numbers):
# 此处可以有更简单的写法
sum = 0
for number in numbers:
sum += number
return sum
sum(1,2,3,4,5) # = 15
# 对于 list 或 tuple, 如 nums = [1,2,3,4,5], 可以这样使用
sum(*nums) # = 15
命名关键字参数
命名关键字有些像普通参数和默认参数的结合,在一个 * 后面的参数为命名关键字参数
和普通参数、默认参数的区别就是需要在传递参数时指定赋值给的参数名字
命名关键字参数只能出现在必选参数、默认参数、可变参数后面
def person1(name, *, age, sex):
print('name:', name, 'age:', age, 'sex:', sex) def person1=2(name, *, age=15, sex='F'):
print('name:', name, 'age:', age, 'sex:', sex) person1('zhang', age=15, sex='F') # 如果命名关键字参数没有设置默认值,则必须显示给每个参数赋值
person2('zhang') # 函数中已经对参数设置默认值
如果命名关键字参数前面有可变参数,则可省略 * 号
# age 和 sex 均是命名关键字参数
def person(name, *args, age, sex):
pass
关键字参数
关键字参数必须出现在必选参数、默认参数、可变参数、命名关键字参数后面
在可变参数的基础上,即不仅仅可以传递任意个参数,同时还可以对传递的各个参数指定参数名,可以理解为传递了一个 dict
def person(name, **kw):
print('name:', name, 'other:', kw) person('zhang', age=15, sex='M') # name: zhang other: {'sex': 'M', 'age': 15}
# 对于 dict, 如 p={'age': 15, 'sex':'M'}, 可以这样使用
person('zhang', **p)
总结一下
普通参数——必选参数
可选参数——参数有默认值,调用函数时可以传递也可以不传递,如果不传递则使用默认值
可变参数——传递数量不确定 (可以为0个) 的参数,类似传递一个 list
命名关键字参数 ——如果设置默认值,则同可选参数,否则必须传递,且传递时指定值对应的参数名
关键字参数——传递数量不确定 (可以为0) 的 键值对,类似传递一个 dict
在函数中出现的顺序必须和上面的保持一致
Python 参数使用总结的更多相关文章
- Python参数笔记
Python参数 1. 普通参数 必须要传入和定义时个数相同的参数 def miao(acfun, bilibili): print(acfun, bilibili) miao(11, 22) > ...
- Python参数基础
Python参数基础 位置参数 通过位置进行匹配,把参数值传递给函数头部的参数名称,顺序从左到右 关键字参数 调用的时候使用参数的变量名,采用name=value的形式 默认参数 为没有传 ...
- Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数
Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数 一.Python参数类型 形参:定义函数时的参数变量. 实参:调用函数时使用的参数变量. 参数传递的过程 ...
- python 参数定义库argparse
python 参数定义库argparse 这一块的官方文档在这里 注意到这个库是因为argparse在IDE中和在ipython notebook中使用是有差异的,习惯了再IDE里面用,转到ipyth ...
- python 参数类型理解
简介 大家都知道,在java中,函数或者方法的参数在调用时必须对其进行传参操作,也就是所谓的必选参数,也可以称为位置参数,除此之外,python还拥有其他语言不具有的一些参数类型,以下将进行一一介绍. ...
- python 参数
摘自:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00137473844933 ...
- python 参数的组合
现在我们知道python定义函数的参数类型有:必选参数 默认参数 可变参数 关键字参数 但是在我们日常中我们是可以组合使用这些参数的:但是使用的时候,参数定义是有顺序的 定义的顺序必须是:必选参数,默 ...
- <转>Python 参数知识(变量前加星号的意义)
csdn上的牛人就是多,加油 —————————————————————————— 过量的参数 在运行时知道一个函数有什么参数,通常是不可能的.另一个情况是一个函数能操作很多对象.更有甚者,调用自身的 ...
- python参数
1.形参变量和实参 形参变量:只有在被调用时才分配内存单元,在调用结束时,即释放所分配的内存单元,因此,形参只在函数内有效,函数调用结束返回主调用函数后则不能再使用该形参变量. 实参:可以是常量,变量 ...
- python参数传递方式
原文地址:http://www.cnblogs.com/zhaopengcheng/p/5492183.html python中一切皆对象,函数中参数传递的是对象的引用. 1在函数中改变变量指向的对象 ...
随机推荐
- 【字节校招】【实习】【内推】字节跳动春招(校招或实习均可)以及日常实习内推ing
本人是年前刚刚入职抖音的应届生,职业认证还未来的级更改,但是这些都不重要.重要的是我们不能错过优秀的你~ 字节跳动的相关福利我就不介绍了,技术实习生是400/天,房补是1500/月,三餐免费,下午茶, ...
- openwrt sdk 添加软件包 Makefile 写法
参考 https://openwrt.org/start?id=docs/guide-developer/packages ,英文稍好点的自己看吧,我写出来也就是方便,英文不好的人看. 软件包的来源, ...
- LoadRunner 11破解方法:
LoadRunner 11破解方法: 请严格安装顺序操作! a.用LR8.0中的mlr5lprg.dll.lm70.dll覆盖LR11安装目录下“bin”文件夹中的对应文件: b.运行deleteli ...
- Golang package轻量级KV数据缓存——go-cache源码分析
作者:Moon-Light-Dream 出处:https://www.cnblogs.com/Moon-Light-Dream/ 转载:欢迎转载,但未经作者同意,必须保留此段声明:必须在文章中给出原文 ...
- XMind ZEN 2020 (10.0.2) 全平台 完美破解版(ubuntu)
XMind ZEN 2020 (10.0.2) 全平台 完美破解版(ubuntu) https://www.ghpym.com/xmindzen.html/comment-page-8?replyto ...
- 详解POI的使用方法(DOM和SAX的方式)及存在的不足
简介 Apache POI是一套基于 OOXML 标准(Office Open XML)和 OLE2 标准来读写各种格式文件的 Java API,也就是说只要是遵循以上标准的文件,POI 都能够进行读 ...
- 深入理解Java内存模型(摘)
--摘自 周志明<深入理解Java虚拟机> 转自 https://www.jianshu.com/p/15106e9c4bf3 深入理解Java内存模型(摘) java内存模型(Java ...
- SpringCloud微服务:Sentinel哨兵组件,管理服务限流和降级
源码地址:GitHub·点这里||GitEE·点这里 一.基本简介 1.概念描述 Sentinel 以流量为切入点,从流量控制.熔断降级.系统负载保护等多个维度保护服务的稳定性.包括核心的独立类库,监 ...
- 你不一定知道的UrlPrefix路由规则
引言 接上文,容器内web程序一般会绑定到http://0.0.0.0:{某监听端口}或http://+:{某监听端口},以确保使用容器IP可以访问到web应用. 正如我们在ASP.NET Core官 ...
- 工作中常用到的Java集合类有哪些?
前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y Java集合是我认为在Java基础中最最重要的知 ...