默认参数:定义函数的时候给定变量一个默认值。  def num(age=1):

位置参数:调用函数的时候根据定义函数时的形参位置和实参位置进行引用。

关键字参数:如果定义的函数中含有关键字参数,调用函数时必须要传如该关键字对应的实参。

不定长参数:在定义函数的时候不确定传入的参数的数量(可能是0个或多个)  def num(*args,**args):  (不定长参数的标志符号是*和**,args和kwargs只是变量的名字,可以改为任意的变量如(*num,**kwnum))

*+变量名1,可以接受被其他参数接受后剩下的任意的形参(不包括赋值语句),放进一个元组里,这个元组的名字是前面的变量名1(所以位置参数必须在此参数之前)

**+变量名2,可以接受被其他参数接受后剩下的任意赋值语句,放进一个字典中,这个字典的名字是前面的变量名2(所以关键字参数和默认参数必须在此参数之前,*+变量名也要在此参数之前)

测试上面的总结是否正确

def num_0(a,b,c,*args,city='beijing',name,**kwnum):

print(a,b,c,name,city,args,kwnum) # 输出的时候直接用*或者** 的变量名

num_0(1,2,3,4,5,6,7,city='hangzhou',name='jack',age=18,country='haidian')

#结果

D:\pycharm_project\装饰器\venv\Scripts\python.exe D:/pycharm_project/装饰器/venv/text.py

1 2 3 jack hangzhou (4, 5, 6, 7) {'age': 18, 'country': 'haidian'}

Process finished with exit code 0

最后总结

调用函数传递实参的时候,先传变量/定量,再传赋值语句(num_0(1,2,3,4,5,6,7,city='hangzhou',name='jack',age=18,country='haidian'))

定义函数的时候直接按此顺序定义形参(def num_0(a,b,c,*args,city='beijing',name,**kwnum):)(位置参数,*变量名,默认参数,关键字参数,**变量名)

接下来讨论一下不定长参数中的 * 和 ** 还有什么用处

1,当在函数的形参中使用时(和上面的例子相同)

*t:将所有的其他位置的实参(变量/定量)获取,并将它们打包到元祖中,并赋值给此形参

def foo(*t):print(t)

foo(1,2,3)

(1,2,3)

**t:将所有的其他位置的实参(赋值语句)获取,并将它们打包到字典中,并赋值给此参数

def foo(**t):print(t)

foo(a=1,b=2)

{'x': 1, 'y': 2}

2,当在调用函数的时候使用(实参中)

*tuple_a:将此元祖的元素,当做函数调用的位置参数

deffoo(a,b):print(a,b)

tuple_a= (1,2)

foo(*tuple_a)

1,2

**dict_a:将字典中的键值对,当做函数调用的关键字参数

deffoo(x, y):print(x, y)

dict_a= {'x':1, 'y':2}

foo(**dict_a)

1,2

3,在匹配和for循环中

*x意味着‘匹配多余的元素’,x是一个列表

>>>x, *xs = (1, 2, 3, 4)

>>>xs

[2, 3, 4]

>>>x,*xs = [1, 2, 3, 4]

>>>xs

[2, 3, 4]

>>> *xs, x =(1, 2, 3, 4)

>>>xs

[1, 2, 3]

>>>x

4>>>x, *xs, y =(1, 2, 3, 4)

>>>x

1>>>xs

[2, 3]

>>>y

4

for (x, *y, z) in [ (1, 2, 3, 4) ]: print(x, y, z)1 [2, 3] 4

4,可以用于合并字典

dict_a = {'a':1,'b':2}

dict_b= {'b':3,'c':4}

dict_c= {**dict_a,**dict_b}print(dict_c)

{'a': 1, 'b': 3, 'c': 4}

*t表示“获取此函数的所有其他位置参数,并将它们作为元组打包到此参数中

python关键字参数必须位于位置参数之前_python函数中的参数(关键字参数,默认参数,位置参数,不定长参数)...相关推荐

  1. python之有关关键字参数,默认参数,不定长参数,位置参数的定义,区别,以及使用方法。

    传递任意数量的实参: 当我们无法确定函数需要接受多少个实参时,我们可以通过在形参名前加,让python创建一个名为该形参名的空元组,在函数调用时,就可以将收到的所有值放入该元组.* 举例: def m ...

  2. python中可选参数和可变参数_Python函数中的可变长参数详解

    一.Python函数中的参数 1.使用python的函数时,有参数类别,比如位置参数.关键字参数.可变长参数 2.位置参数.关键字参数很好理解,关键是可变长参数经常能见到,但是一直没有搞懂是什么意思 ...

  3. python函数默认参数位置_二十二、Python函数参数类型(位置、关键字、默认、不定长参数)...

    调用函数时可使用的参数类型 在调用Python函数时可使用的参数类型主要有以下几种: 必要参数(位置参数) 关键字参数 默认参数 不定长参数 必要参数(位置参数) 在Python中, 必要参数必须以正 ...

  4. python 函数递归一次增加一次变量_python基础之函数、返回值,局部变量、全局变量,递归(继续补充不定长参数)...

    1.python中函数定义:函数是逻辑结构化和过程化的一种编程方法.(完成某一种特定的功能) def test02(): #"" msg = 'hello WuDaLang' re ...

  5. python不定长参数怎么相加_python函数不定长参数使用方法解析

    这篇文章主要介绍了python函数不定长参数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 pathon中的函数可以使用不定长参数,可以 ...

  6. python中的星号和乘号_Python 函数中参数前面一个和两个星号(**)的区别

    Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化 脚本( shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发. 在 P ...

  7. python3_函数_形参调用方式 / 不定长参数 / 函数返回值 / 变量作用域 / 匿名函数 / 递归调用 / 函数式编程 / 高阶函数 / gobal和nonlocal关键字 / 内置函数

    1.形参的调用方式 1. 位置参数调用 2. 关键词参数调用 原则: 关键词参数调用不能写在位置参数调用的前边 def test1(name, age):print("name:" ...

  8. 【爆肝更新】Python基础教程:第五章_Python函数

    原创:公众号 数据说话 [爆肝更新]Python基础教程:第五章_Python函数 函数介绍 学习目标: 快速体验一下函数的使用 了解函数的作用. 函数:是组织好的,可重复使用的,用来实现特定功能的代 ...

  9. Python 不定长参数 *argc/**kargcs - Python零基础入门教程

    目录 一.前言 二.Python 不定长参数 argc/*kargcs 简介 1.函数不定长参数 *args 使用 2.函数不定长参数 **kwargs 使用 3.函数不定长参数*args 和**kw ...

最新文章

  1. SVD、SVD++和Asymmetric SVD 以及实例
  2. 计算机网络基础 — 网络设备 — 以太交换机(Switch)
  3. 线性筛素数(欧拉筛)
  4. mvc4站点支持.html
  5. android edittext 不滚动,EditText 设置可以垂直滑动但是不可输入
  6. BZOJ 2768 [JLOI2010]冠军调查
  7. css clearfix_如何使用CSS清除浮点数(clearfix)?
  8. 视觉SLAM十四讲学习笔记-第四讲-Sophus实践、相似变换群与李代数
  9. Android:Android学习路线图
  10. 2018年个人的一些简单预测
  11. 元素可视区client系列(附实例)
  12. 基于51单片机的跳一跳游戏程序设计(C语言)
  13. windows2003r2下载
  14. 图灵社区python kindle_推送mobi至Kindle流程说明(简要操作)
  15. 8.4v双节锂电池专业充电ic(FS4062A)
  16. 项目管理与敏捷开发-流程之间的区别
  17. 恶意代码分析平台Truman相关资料
  18. TLC2543硬件SPI代码
  19. 2018 Android开发面试经历
  20. 打印机问题:虚拟机连接打印机、物理机连接打印机

热门文章

  1. “职”等你来!阿里云2020年专场招聘来了
  2. 电饭锅一会儿通电一会儿不通电【检修原因】
  3. 产品logo的设计:图标与几何构成
  4. Photoshop辅助线和标尺的使用技巧
  5. 专访卜茂霞:嵌入式汽车开发潜力巨大
  6. C++中endl的本质是什么
  7. 如何安装最新igraph 现在已经无坑了
  8. SQLI DUMB SERIES-8
  9. 在计算机网络中ftp服务器的用途是,FTP的作用以及传输文件的一般步骤
  10. python手机编程调试_在Linux下调试Python代码的各种方法