详解python函数的参数

一、参数的定义

1、函数的参数在哪里定义

在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号, 隔开

案列:

#利用函数的参数,定义一个可以完成任意两个数相加的函数

defadd_num(a,b):

c= a +bprint(c)

2、带参数的函数调用:

函数定义了参数,那么调用函数的时候就需要传入参数

add_num(11,22)

#运行结果33

上面的案列中,我们定义函数的时候在函数名后面的括号里

定义的参数叫做形参,

而我们调用函数的时候传入的参数叫做实参,形参是用来接收实参的。

二、参数分类

上面我们说了形参和实参,那么形参和实参在在定义和调用的时候,根据形式不同有可以分为几类,

1、根据实参进行分类

实参:位置参数、关键字参数

1.1、位置参数(未命名参数)

deffunc(a,b,c):print(a)print(b)print(c)

add_num(11,22,33)#运行结果

11

22

33

上述案列中,的函数的三个形参是按位置接收传入的实参,我们把这样的传参的形式叫做位置参数,

1.2、关键字参数(命名参数)

deffunc(a,b,c):print(a)print(b)print(c)

add_num(11,c=99,b=33)#运行结果

11

33

99

调用函数函数的时候,实参通过参数名指定传给某个形参,这样的传参形式,我们把它叫做关键字参数

注意:传参的时候先写位置参数,再写命名参数

2、根据形参进行分类

形参可以分为三类:必备参数、默然参数、不定长参数

2.1、必备参数:

在调用函数的时候必须要传的参数

defadd(a,b):

c=a+bprint(c)

add(11,22)

上面函数中的a,b就是必备参数,在调用的函数的时候必须要传,不然就会报错

2.2、默认参数(缺省参数):

调用函数的时候可以传可以不传,不传就用默认值

def func(a,b,c=99):print(a)print(b)print(c)

func(11,22,33)print('-----------')

func(55,66)

​#运行结果:

11

22

33

---------------

55

66

99

通过上述案列中我们可以发现,第一次调用的时候,我们传入了三个参数,c打印出来的是我们传入的值,第二次只传入了两个参数,这个时候c打印出来的是我们定义的时候给它设置的默认值

注意:带有默认值的参数一定要位于参数列表的最后面。

2.3、不定长参数*args和 **kwargs

调用函数的时候可以传0个或者多个

2.3.1、*args:接收多传入的位置参数,以元祖的形式保存

def func(*args):print(args)

func(33,44,55,66,77)func(*(33,44,55,66,77))

#运行结果

(33,44,55,66,77)

(33,44,55,66,77)

*args,args接收的是一个元祖;

调用的时候可以直接传入:func(33,44,55,66,77),

也可以可以先组装list或tuple,再通过*拆包传入:func(*(33,44,55,66,77));

2.3.2、**kwargs:接收多传入的关键字参数,以字典的形式保存

def func(**kwargs):print(kwargs)

func(e=33,h=44,f=55,d=66,c=77)

func(**{'e':33,'h':44,'d':66,'c':77})#运行结果

{'e': 33, 'h': 44, 'f': 55, 'd': 66, 'c': 77}

{'e': 33, 'h': 44, 'f': 55, 'd': 66, 'c': 77}

**kwargs,kw接收的是一个字典;

关键字参数既可以直接传入:func(11,22,e=33,h=44,f=55,d=66,c=77),

也可以先组装dict,再通过**拆包传入:func(**{'e':33,'h':44,'d':66,'c':77})。

注意点:使用*args和**kwargs是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。

python中形参可以使用中文定义嘛_python中函数的参数分类相关推荐

  1. python 获取值类型用于定义变量_Python中的变量和简单数据类型

    变量: 变量是存储在内存中的值,在创建变量时会在内存中开辟一个空间. 变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符串. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存 ...

  2. python调用so库输出传入指针_python中使用ctypes调用so传参设置遇到的问题及解决方法...

    问题 近日在做一组声纹聚类时,使用了另一团队同学开发的声纹距离算法.该算法对外提供的是一组so包,需要使用方自己去使用.在python中调用纯so包一般使用ctypes类库,用起来看起来简单但也有不少 ...

  3. python中定义数据结构_Python中的数据结构—简介

    python中定义数据结构 You have multiples algorithms, the steps of which require fetching the smallest value ...

  4. python中函数的定义包括_python中函数的定义及调用

    python中函数的定义及使用方法 1.函数的概念:函数是将具有独立功能的代码块组织为一个整体,使其具有特殊功能的代码集; 2.函数的作用:使用函数可以加强代码的复用性,提高程序编写的效率; 3.函数 ...

  5. python 类中定义类_Python中的动态类定义

    python 类中定义类 Here's a neat Python trick you might just find useful one day. Let's look at how you ca ...

  6. python中定义字符串_python中的字符串

    python中的字符串一旦定义,则不可以修改 python中的原始字符串 即 在字符串前面加小写字母r 比如:打印输出C:\Program Files\Microsoft Games python中的 ...

  7. python中定义字符串_Python中的字符串String

    Python中除了数字(Numbers)(int,float,complex)之外,另外一种重要的类型就是字符串. 字符串是字符序列,可以由任何字符构成. 在Python语言中,字符串可以放在单引号( ...

  8. python如何定义类_python中定义类

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 类的定义python中,定义类是通过class关键字,例如我们定义一个存储学生信 ...

  9. python中如何定义数组_python中数组是如何使用的?

    今天马哥教育要跟大家分享的文章是Python数组是如何使用的?熟悉Python的小伙伴们都知道在学习Python过程中数组是个逃不过去的一个关,既然逃不过去咱就勇敢面对它,Python入门新手和正在 ...

最新文章

  1. 机器学习中的优化算法!
  2. python写乘法口诀-如何用python编写乘法口诀表
  3. torchnet package (2)
  4. MYSQL性能管理及架构设计(一)
  5. Android SDK中tools详解
  6. Linux通过网卡驱动程序和版本号的信息
  7. FBI局长重提解锁iPhone 希望展开关于智能手机加密的讨论
  8. linux查看文件时显示行号,linux中查看文件时显示行号
  9. 从ajax获取的数据无法通过Jquery选择器来调用事件
  10. Python 设计模式之建造者模式 Builder Pattern
  11. mp4如何转换成wmv格式
  12. 【转载】北京三险一金计算器
  13. 方格网提取高程点lisp_基于VBA的道路横断面高程点提取方法研究
  14. “滴血查癌”女主角被判入狱11年:公司估值曾达90亿美元 一朝覆灭
  15. Android 退出登录功能
  16. 用友文件输出在服务器电脑,用友软件电脑怎么远程连接服务器
  17. 虚拟化存储和非虚拟化存储
  18. 使用 Keras 进行面部表情识别
  19. 触龙——可解释推荐系统
  20. 逗视 iOS客户端应用源码

热门文章

  1. php数值相加_PHP+Redis 有序集合实现 24 小时排行榜实时更新
  2. python中一个对象只能被一个变量引用吗_Python中for循环里的变量无法被引用的解决方法...
  3. GCC/G++编译过程
  4. Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - MMX技术(3) - 组合的算术指令
  5. python爬虫教程蝴蝶汤_Python 爬虫十六式 - 第五式:BeautifulSoup-美味的汤
  6. django 设置登录成功后的页面
  7. iphonex计算机隐藏功能,关于iPhone11系列的一些隐藏功能,非常的实用
  8. TCP校验值的伪头以及校验值计算
  9. UVALive4983 UVa1593 POJ3959 Alignment of Code【字符串流+输入输出】
  10. Unity C# 反编译