摘自:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738449338c8a122a7f2e047899fc162f4a7205ea3000

默认参数是一个固定的值

比如说

>>> def Foo(age,name='zhangsan'):
...   print name,age
...
>>> Foo(25)
zhangsan 25

这里的name,就是一个固定参数,虽然它是固定的,但是当你的业务有需求的时候,不想用这个值,而是想自己传入一个值的时候,可以这么做

>>> Foo(25,'wanger')
wanger 25

还有一点要注意的是, 形参的位置排放,当我们把形参放在前面的时候会报错

可变参数(*arg):

顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。

定义可变参数和定义list或tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变。但是,调用该函数时,可以传入任意个参数,包括0个参数:

比如说

def show2(*arg):for item in arg:print item

show2('a','b','1',2,3)

可变参数就是说:可以随意的传入参数,调用的时候,python会自动的给传入的参数包装成列表或者元祖的形式传给实参

关键字参数:(**arg)

关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict,然后。

关键字参数的作用就是我们可以扩展函数的功能

比如我我们现在定义一个学生信息函数

def person(name,age,**args):
print 'name: ',name,'age: ',age,'other: ',args
#person('baoxy',25)
person('baoxy\n','25\n',city = 'anhui',sex = 'Man')

输出的结果分别是

C:\Python27\python.exe X:/708/lambda.py
name:  baoxy age:  25 other:  {}

name:  baoxy
age:  25
other:  {'city': 'anhui', 'sex': 'Man'}

注:我们在使用参数组合的时候,我们要注意定义参数的顺序必须是:必选参数、默认参数、可变参数和关键字参数。

还有一点要注意的是,我们在传可变参数的时候,直接传入参数就行,比如说函数名为Foo,那么我们可以使用Foo('a1','a2','a3')

我们传关键字参数的时候也是这样Foo(name='bao',age =25)

但是当我们传入一个列表或者是字典的时候要加上   *   和   **

比如说:

L=【1,2,3,4】

调用的时候就的   Foo(*L)

D = {'name':'bao','age':25}

调用的时候就的   Foo(**D)

现在我们看一下具体的实例

def Foo(*arg):for item in arg:print item

L = [1,2,3,4,5]Foo(L)

得出的记过是:[1, 2, 3, 4, 5]

Foo(*L)得出的结果是:12345所以第二个才是我们想要的结果
def Foo(**args):print argsD = {'name':'bao','age':25,'city':'anhui'}#Foo(D) 这个执行后得出的结果是格式错误Foo(**D) 这个才是我们想要的结果

python 参数相关推荐

  1. 对Python参数类型详解以及学习中遇到的坑

    由于之前遇到过几次有关于参数类型的坑,以及经常容易把一些参数类型搞混淆,现在做一下有关参数类型的总结记录以及对之前踩坑经历的分析. 参数类型 首先我们列举一下有关于Python的参数类型,以及实际上的 ...

  2. python参数检查类型_Python类型检查

    python参数检查类型 1.什么是类型检查? (1. What is Type Checking?) Type Checking is the programming language featur ...

  3. python参数内存地址

    python参数内存地址 1.参数内存地址 查看某个值在内存中的地址 v1=123 id(v1) 函数值执行参数时,传递的是内存地址 #函数执行传参,传递的是内存地址 def func(data):p ...

  4. python参数类型限定_python限定方法参数类型、返回值类型、变量类型等|python3教程|python入门|python教程...

    https://www.xin3721.com/eschool/python.html typing模块的作用 自python3.5开始,PEP484为python引入了类型注解(type hints ...

  5. python 参数解析_python的函数对参数解析分析

    以下转自其它博客.觉得总结得太好了,所以拿来自己参考一下. python中函数参数的传递是通过赋值来传递的. 函数参数的使用又有俩个方面值得注意: 1.函数参数是如何定义的 2.在调用函数的过程中参数 ...

  6. python 参数个数 同名函数_如何在python中编写不同参数的同名方法

    我在Java背景下学习Python(3.x). 我有一个python程序,我在其中创建一个personObject并将其添加到列表中.p = Person("John") list ...

  7. python参数类型检查_Python中的类型检查

    本文中所有代码均运行在Python 2.7上 为什么要进行类型检查? 总所周知,Python是一门典型的动态语言,在变量定义.使用的过程中遵循duck typing,当对某一变量进行操作时才去检查它是 ...

  8. 转Python 参数知识(变量前加星号的意义)

    csdn上的牛人就是多,加油 -------------------------- 过量的参数 在运行时知道一个函数有什么参数,通常是不可能的.另一个情况是一个函数能操作很多对象.更有甚者,调用自身的 ...

  9. python参数的可变参数与关键词参数

    可变参数与关键词参数 def can_form_triangle(a, b, c):print(f'a = {a}, b = {b}, c = {c}')return a + b > c and ...

最新文章

  1. php vsftpd文件上传类,php ftp文件上传函数(基础版)
  2. opengl 深度详解_OpenGL中的深度测试
  3. 线上环境部署MongoDB的官方建议
  4. 异步广度优先搜索算法
  5. activiti 多租户_Activiti中具有独立数据库架构的多租户
  6. ※交换排序(1)——快速排序(quick sort)
  7. 笨方法学python第四版当当_Python编程(第四版)
  8. Struts2 + Spring + Hibernate 通用 Service 和 DAO
  9. 力扣-509 裴波那契数
  10. python算法常用技巧与内置库
  11. 非参数统计的Python实现——随机游程检验
  12. 【学习笔记】极其美妙的算法——FFT(快速傅里叶变换)
  13. 网易云解锁配置(windows)
  14. 电子印章助推《上海市公共数据和一网通办管理办法》施行
  15. 互联网巨头:必须要裁员吗?
  16. 12星座超级独家!通过星座完美你自己!不断加新中……
  17. 图码详解算法|理解八大思想,胜刷百道力扣!
  18. 买笔记本电脑的13个重要的验机步骤
  19. oracle判断if函数,ORACLE判断奇偶数函数
  20. PostgreSQL 11 1Kw TPCC , 1亿 TPCB 7*24 强压耐久测试 1

热门文章

  1. 嵌入式开发从业人员生存状况
  2. J2SE,J2ME,J2EE解释
  3. Windows 2008下安装配置 WDS Windows部署服务
  4. 防止一个进程被多次启动
  5. switch和枚举的小坑
  6. Unity版本更新关注
  7. linux下删除乱码文件
  8. 使用ASV2011研究Molehill API
  9. Java中的多线程你只要看这一篇就够了
  10. 让Vagrant在Windwos下支持使用NFS/SMB共享文件夹从而解决目录共享IO缓慢的问题