Python 函数的4种参数

news/2024/12/22 14:25:40/

Python的函数参数有4种:

  1. 必选参数:函数调用时必须赋值的参数
  2. 默认参数:函数定义时,赋予默认值的参数,位于必选参数之后。如def test(param,default=3),default为默认参数,函数调用时,如果没有给default赋值,则使用其默认值3参与运算;否则使用函数调用时,用户自定义的值
  3. 可选参数:函数定义时以*开头,表示0个或多个可选参数。当不确定函数的参数个数时,可使用。位于默认参数之后。将除去必选参数与默认 参数之外的不含参数名的所有参数打包为一个元祖,该元祖即为可选参数。
  4. 关键字参数:函数定义时以**开头,表示0个或多个关键字参数。函数调用时,参数需要参数名,如test(1,2,3,4,kw1=5,kw2=6),kw1=5和kw2=6就是两个关键字参数,kw1和kw2是参数名。关键字参数在函数中是字典格式,参数名为key,参数值为value。
def test(param,default=0,*args,**kw):print('必选参数为:', param)print('默认参数为:',default)print('可选参数为:',args)print('关键字参数为:',kw)test(1,2,3,4,kw1=5,kw2=6)

输出结果为:

必选参数为:1

默认参数为:2

可选参数为:(3,4)

关键字参数为:{'kw1':5,'kw2':6}

注意点:

1)默认参数: 

  • 若有多个默认参数,如def test(param,default1=1,default2=2,default3=3),可按顺序赋值  ,如test(1,2,3,4),得到default1=2,default2=3,default3=4  ;也可以不按顺序赋值,如test(1,default2=0,default1=5,default3=1)   ,得到default1=5,default2=0,default3=1。
  • 由于Python的默认值参数只会在函数定义处被解析一次,以后每次调用函数的时候,默认值参数都会是这个值。若默认值参数是一些不可变的数据类型,如整型、字符串等,不会有问题。但遇到可变数据类型,如数组,就会出现问题
def add(num, valuelist=[]):valuelist.append(num)print(id(valuelist),valuelist)add(1)  //输出 102003080 [1]
add(2)  //输出 102003080 [1,2]
add(3)  //输出 102003080 [1,2,3]

        valuelist在函数第一次被解析的时候会被赋值为空数组,因为只会被解析一次,以后每次调用都会在此基础上变化。

2)可选参数:若要把一个数组中的值解构后赋值给可选数组,可在数组名前加一个*号,把数组元素传给可变参数。

a=[3,4]

//调用上述的test()函数

test(1,2,a)     //输出为...可选参数为:([3,4],)

test(1,2,*a)    //输出为...可选参数为:(3,4)

3)关键字参数:与可选参数类似,如果要把一个字典传递给关键字参数,只需要在字典名前加**号。

b={'kw1':5,'kw2':6}

//调用上述的test()函数

test(1,2,3,4,**b)     //输出为...关键字参数为:{'kw1':5,'kw2':6}


http://www.ppmy.cn/news/517446.html

相关文章

华为webview打不开页面【型号:HUAWEI 麦芒4 】

问题描述:webview打开一个页面后再打开第二个页面,首次可以打开,接下来所有webview界面都打不开 问题解决:是系统webview的问题,到华为应用市场搜索webview安装即可,手机华为市场可能找不到,到电…

android 手机安装windows7,手机怎么安装win7系统 安卓手机装win7系统教程

现在少了什么都能少了手机,通信,社交,购物,查资料,手机功能越来越强大,大家都随身携带。但是手机也是有限制的,我们办公的时候还是会使用电脑。不过有些小伙伴也想享受一下手机当电脑用的感觉&a…

vivo7.0系统怎么无root激活XPOSED框架的教程

在异常多企业的引流,或业务操作中,理论上需要使用安卓的黑技术XPOSED框架,几天前,我们企业采购了一批新的vivo7.0系统,理论上都是基于7.0以上版本,理论上不能够获取root权限,虽说有一些能但比较…

vivo7.0系统手机最完美激活Xposed框架的教程

对于喜欢研究手机的机友而言,常常会玩到XPOSED框架及其各类功能彪悍的模块,对于5.0以下的系统版本,只要手机能获得root权限,安装和激活XPOSED框架是异常简易的,但随着系统版本的更新,5.0以后的系统&#xf…

android 桌面操作系统,Android主题美化: Win7桌面完成版Android Seven Pro V2

您是否只是不习惯使用Android平板电脑来操作桌面,还是对Android随附的桌面感到厌倦,是否想要更改为其他Android主题?今天的平板电脑包装盒为您带来了一个Android桌面美化软件,该软件将Android主题修改为Windows7: Android Seven P…

kvm安装Windows7旗舰版

前言: kvm通常是现在的云平台的底层架构,因此,kvm是需要好好学习的。那么,如何在vm的Linux虚拟机里练习安装kvm虚拟机呢(这里,可能很多同学有点疑惑了,简单来说,就是在vm里安装的虚…

飞智黑武士X9 ET PRO完美改装震动及背光

自从去年底入手et pro后感觉一切良好, 一段时间使用后真心觉得这个手机电脑电视都能用的手柄堪称完美, 唯一美中不足的便是缺少加强游戏手感的震动功能, 在度娘连续搜寻许久看到某大神X9改装震动的帖子, 于是决定动手改装&…

酷玩Go命令行工具—Cobra

不知大家有没有在使用Git命令、Linux的yum命令、Go命令、Maven命令的时候感觉到非常的酷,比如你刚刚拿到一个Go的开源项目,初始化时只需要输入go mod tidy进行对依赖的下载,或者是git clone xxx之后拉下来一个GitHub上的项目,mvn …