Python 函数的关键字参数和位置参数
目前我们python学习过程中用到的参数都是位置参数,显然参数的位置是很重要的。本文我们再来讲一种关键参数,它可以不按照位置传入参数,在大规模的程序中这个关键字参数会比位置参数更有用。关键字参数和位置参数使用方法有什么不同?我们往下看。
位置参数
先观察下面两个函数,看看什么是位置参数:
>>>def a1(x,y,z):
>>> return x,y,z
>>>print a1(1,2,3)
(1,2,3)
>>>def a2(x,y,z):
>>> return x,z,y
>>>print a1(1,2,3)
(1,3,2)
两个函数在定义时的参数名一样,调用时传入的参数也一样,为什么结果不同呢?问题就在return返回的参数位置上。定义函数时参数名的位置,与调用时所传参数位置是相对应的,也就是这两个函数中x=1,y=2,z=3,至于输出结果是什么则由return中的顺序来决定。想一下,如果调用a2函数时传入的参数是(1,3,2)会得到什么样的结果?
位置参数还需要注意:定义函数时写了几个位置参数,在调用传参时就要传入同样数量的参数。return返回值有很多个时,在输出时会集合为元组展现。
关键字参数
关键字参数有什么用?在程序比较繁琐的时候,参数顺序是很难能记住的,为了让程序简单不出错,会为参数起一个名字,这就是关键字参数的作用。好比下面这个函数:
>>>def x(name,Profession):
>>> return '%s is %s' %(name,Profession)
>>>print x(name='Amy',Profession='Student')
Amy is Student
>>>print x(Profession='Student',name='Amy')
Amy is Student
第二次调用x函数时,虽然传参数时把参数位置调换了,但结果还是没有变。这是因为把参数名与值绑定在一起,使用参数名提供的参数叫做关键字参数。
关键字参数还有一个特殊的作用,就是可以在定义函数时设置关键字参数默认值:
>>>def info(name='Amy',Profession='Student'):
>>> return '%s is %s' %(name,Profession)
>>>print info()
Amy is Student
在函数设置了参数默认值是,调用的时候可以不传入参数了。当然你也可在传入一个或是所有的新参数:
>>>print info('lili')
lili is Student
>>>print info('lili','Teacher')
lili is Teacher
如果只想提供职业Profession参数,而名字用默认值,应该怎么操作呢?想深入学习的同学们可以关注玩蛇网python学习视频哦。
浏览这篇文章的用户,正在关注:
python 函数返回值
玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/jinjie/jj130.html
相关文章 Recommend
- • 2019年3月最新消息: Python 3.4.10 现已推出
- • [上海]招Python量化系统开发工程师
- • 优集品网络科技有限公司招Python中/高级工程师
- • 爱因互动科技发展有限公司招募Python开发攻城狮
- • mozio招聘Python/Django工程师
- • Kavout金融科技公司招Python研发工程师
- • Python数组逆向输出,编程练习题实例四十
- • Python数组插入排序,编程练习题实例三十九
- • Python矩阵for循环应用,编程练习题实例三十八
- • Python操作Redis数据库方面的问题
- • 请python高手帮我看看这段python代码中函数setter的
- • Python什么方法可以快速将两个队列变成字典
PYTHON基础入门必备教程 Must Know PYTHON Tutorials
- • python 解释器
- • python idle
- • python dir函数
- • python 数据类型
- • python type函数
- • python 字符串
- • python 整型数字
- • python 列表
- • python 元组
- • python 字典
- • python 集合
- • python 变量
- • python print
- • python 函数
- • python 类定义
- • python import
- • python help
- • python open
- • python 异常处理
- • python 注释
- • python continue
- • python pass
- • python return
- • python global
- • python assert
- • python if语句
- • python break
- • python for循环
- • python while循环
- • python else/elif
- • lambda匿名函数
PYTHON进阶提高必备教程 Must Know PYTHON Modules
- • os 模块
- • sys 模块
- • re 正则表达式
- • time 日期时间
- • pickle 持久化
- • random 随机
- • csv 模块
- • logging 日志
- • socket网络通信
- • json模块
- • urlparse 解析URL
- • urllib 模块
- • urllib2 模块
- • robotparser 解析
- • Cookie 模块
- • smtplib 邮件
- • Base64 编码
- • xmlrpclib客户端
- • string 文本
- • Queue 线程安全
- • math数学计算
- • linecache缓存
- • threading多线程
- • sqlite3数据库
- • gzip压缩解压
最新内容 NEWS
- • Python列表添加 insert() 插入元素方法
- • Python列表删除 pop() 方法返回指定对象
- • Python else与elif语句语法讲解
- • Python IOError错误异常原因
- • Python列表排序 reverse、sort、sorted 操作方法
- • 使用 from import方法导入Python模块
- • Python break语句 跳出循环
- • Python return语句 函数返回值
- • Python import语句导入模块语法
- • python assert 断言详细用法格式
图文精华 RECOMMEND
-
Python列表添加 insert() 插入元素方
-
Python列表删除 pop() 方法返回指定
-
Python else与elif语句语法讲解
-
Python列表排序 reverse、sort、sorte
-
Python break语句 跳出循环
-
Python return语句 函数返回值
热点文章 HOT
- Python语言的一些基本常用语句
- Python 字典items返回列表,iteritems返回迭代
- Python函数的形参和实参详解
- Python is同一性运算符和==相等运算符区别
- Python for循环控制语句一般格式及方法
- Python 序列的概念及基本操作方法
- python assert 断言详细用法格式
- python if控制流语句 语法笔记
- Python 函数的关键字参数和位置参数
- Python条件语句的嵌套使用