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}

Python 函数的4种参数相关推荐

  1. Python函数中4种参数的使用

    1.必需的参数: 必须参数须以正确的顺序传入函数,调用的数量必须和声明时的一样 def f(name,age):print('I am %s,I am %d'%(name,age))f('alex', ...

  2. [转载] 详细介绍Python函数中的默认参数

    参考链接: Python函数中的默认参数 详细介绍Python函数中的默认参数 import datetime as dt def log_time(message, time=None): if t ...

  3. python 装饰器 参数-python函数装饰器之带参数的函数和带参数的装饰器用法示例...

    本文实例讲述了python函数装饰器之带参数的函数和带参数的装饰器用法.分享给大家供大家参考,具体如下: 1. 函数带多个参数 # 普通的装饰器, 打印函数的运行时间 def decrator(fun ...

  4. python装饰器函数-python函数装饰器之带参数的函数和带参数的装饰器用法示例

    本文实例讲述了python函数装饰器之带参数的函数和带参数的装饰器用法.分享给大家供大家参考,具体如下: 1. 函数带多个参数 # 普通的装饰器, 打印函数的运行时间 def decrator(fun ...

  5. python函数定义之关键字参数

    python函数定义之关键字参数 关键字参数 关键字参数 kwarg=value 形式的 关键字参数 也可以用于调用函数.函数示例如下: def parrot(voltage, state='a st ...

  6. 站长在线Python精讲:在Python函数中的默认参数详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python函数中的默认参数详解>.本文的主要内容有:默认参数的概念和默认参数的示例.默认参数不能设置可变对象. 目录 1 ...

  7. 站长在线Python教程精讲:在Python函数中的关键字参数详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python函数中的关键字参数详解>.本文的主要内容有:关键字参数的含义和关键字参数的应用举例. 目录 1.关键字参数的含 ...

  8. python函数支持哪些参数类型_Python函数的几种参数类型

    以下代码均以Python3为基础理解. 初识Python函数 大部分常见的语言如C.Java.PHP.C#.JavaScript等属于C系语言,Python不属于他们中的一员(ruby亦然).在这些语 ...

  9. python:函数中五花八门的参数形式(茴香豆的『回』字有四种写法)

    毫不夸张的说,python语言中关于函数参数的使用,是我见过最为灵活的,随便怎么玩都可以,本文以数学乘法为例,演示几种不同的传参形式: 一.默认参数 def multiply1(x, y):retur ...

最新文章

  1. 教你如何防范远程桌面协议(RDP)的安全威胁
  2. Windows Phone应用程序政策性约束
  3. ansible笔记(11):初识ansible playbook(二)
  4. linux容器怎么运行到windows,如何在 Windows 上运行 Linux 容器?
  5. Ubuntu10.10更新源
  6. ORACLE 11g 使用ROWNUM完美解决ORA-00600:内部错误代码
  7. Kubernetes 集群升级指南:从理论到实践
  8. bulkwrite 批量插入_SQL SERVER 使用BULK Insert将txt文件中的数据批量插入表中(1)
  9. OpenCASCADE:常用Inspector控件之树视图
  10. Win下通过 Navica t连接Ubuntu下MySQL数据库
  11. shell进入特权模式_shell的各种运行模式?
  12. 【华为云技术分享】听说,AI界奔涌的后浪都相聚在这里
  13. 闭包 python_根据面试题谈谈 Python 闭包
  14. android x5 浏览器教程,064-腾讯的X5WebView内嵌浏览器引擎的使用
  15. simulink单位转换小迈步
  16. html flex上下居中,CSS3 Flex实现元素的水平居中和垂直居中
  17. AD9的pcb 里面怎样才能从TOP层视图换成从BOTTOM层网上面看,相当于把板子翻过来看
  18. 摆脱“咖喱味”,让Win11的右键菜单回归经典
  19. OEM版Win7激活原理
  20. PMBOK泛读(第十一章) - 项目风险管理

热门文章

  1. Type-C接口简单介绍-面向单片机应用
  2. 太原市高二会考计算机试题及答案,太原市第二十一中学校2019-2020学年高二会考模拟生物试卷...
  3. 2020汽车修理工(中级)实操考试视频及汽车修理工(中级)考试试题
  4. 如何使用 aph-cli 搭建本地静态开发环境(server + proxy + mock)
  5. 1行Python代码识别身份证信息,还能自动告警,YYDS
  6. python小白从哪来开始-如何看待Python的由来?Python小白如何入门?(附教程)
  7. 学会VBA,菜鸟也高飞!
  8. bisect的一些用法(代码详解)
  9. python处理era5_python环境下实现ERA5逐小时数据的自动下载和简单处理
  10. 怎样截图翻译?试试这几个软件吧