python函数参数(必须参数、可变参数、关键字参数)


Posted in Python onAugust 16, 2019
#python中的函数定义,使用和传参
###------------------- 必要参数 -------------------------------------
必要参数,即函数调用时必须要传的参数,
 #下面进行举例说明
 def helloWorld(a):
  print('输出:hello')
 if __name__ == '__main__':
  helloWorld("aaa") ## 必须要有参数
##------------ 默认参数 -----------------------------------------------------------
说明:
 1.必选参数在前,
 2,有多个默认参数时,调用的时候,既可以按顺序提供默认参数
 3,也可以不按顺序提供部分默认参数。当不按顺序提供部分默认参数时,需要把参数名写上
例如:
def enroll(name, gender, age=6, city='Beijing'):
 print('name:', name)
 print('gender:', gender)
 print('age:', age)
 print('city:', city)
enroll('Bob', 'M', 7)
enroll('Adam', 'M', city='Tianjin')
特别重要:
 ### 定义默认参数要牢记一点:默认参数必须指向不变对象!
例如:
def add_end(L=[]):
 L.append('END')
 return L
print (add_end())
print (add_end())
结果:
 ['END']
 ['END','END']
原因说明:
 Python函数在定义的时候,默认参数L的值就被计算出来了,在每次调用时,L参数已经变前一次调用所更改了,
所以:
 避免在函数里面去修改函数的默认参数值。
##--------------------- 关键字参数 --------------------------------------------
def about(name,course,site):
 print (name,course,site)
about('jim','100','www.baidu.com') ## 必须按顺序传参
about(site='www.baidu.com',name='green',course=100) ##以关健字方式传入参数(可以不按顺序)

##-------------- 不定长参数(可变参数) (这些可变参数在函数调用时自动组装为一个tuple)-----------------------------------------------------------
顾名思义:
 可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。
###重要说明:
 (可变参数的好处是,不用事先准备好LIST或者元组)
 这些可变参数在函数调用时自动组装为一个tuple
定义:
def loop(*args):
 for x in args:
  print x
loop(1,2,3)
结果是:
1
2
3
###说明2:
 如果已经有了一个列表或者元组,怎么传递可变参数呢??? 如下:
def loop(*args):
 for x in args:
  print x
loop(1,2,3)
a=[4,5,6]
loop(*a) ## 这里要在列表 或元组 前面加* 连传递参数进来。

###------------------- 这也是不定长参数 ----------------------------------------------------------------
说明:
 这些关键字参数在函数内部自动组装为一个dict
函数定义:
def person(name, age, **kw):
 print('name:', name, 'age:', age, 'other:', kw)
调用1:
>>> person('Michael', 30)
name: Michael age: 30 other: {}
调用2:
>>> person('Adam', 45, gender='M', job='Engineer')
name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
调用3:
>>> extra = {'city': 'Beijing', 'job': 'Engineer'} ---事先已经有了一个字典
>>> person('Jack', 24, **extra)      ---- **extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
###调用说明:
**extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数,kw将获得一个dict,
注意kw获得的dict是extra的一份拷贝,对kw的改动不会影响到函数外的extra。

##--------------------------------------------

ps:下面给大家介绍下python中函数、方法、关键字的区别

一、关键字

 python中一共含有32个关键字:'false', 'none', 'true', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'

--关键字-是Python内置的、具有特殊意义的表示符

--使用时关键字后面不需要括号

二、函 数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。可以自己定义一个函数。

--函数-封装了独立功能,可以直接调用

--函数名(参数)

以下是简单的定义规则:

•函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。

•任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

•函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

•函数内容以冒号起始,并且缩进。

•return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

语法: 

def functionname( parameters ):
 "函数_文档字符串"
 function_suite
 return [expression]

案例:

#自定义函数
def function_name (str):
 "打印传入的字符串"
 print(str)
 return(0);
#调用自定义函数
function_name("自定义函数")
function_name("调用自定义函数")

二、方 法

 方法-和函数类似,同样封装了独立的功能
  -需要通过对象来调用表示针对这个对象要做的操作
  --对象.方法名(参数)
  --在变量名后面输入.,然后选择针对这个变量要执行的操作,记忆起来闭函数要简单的多

总结

以上所述是小编给大家介绍的python函数参数(必须参数、可变参数、关键字参数),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python 随机数生成的代码的详细分析
May 15 Python
python循环监控远程端口的方法
Mar 14 Python
Tornado 多进程实现分析详解
Jan 12 Python
CentOS7下python3.7.0安装教程
Jul 30 Python
深入flask之异步非堵塞实现代码示例
Jul 31 Python
python+numpy+matplotalib实现梯度下降法
Aug 31 Python
Python实现的序列化和反序列化二叉树算法示例
Mar 02 Python
django基于restframework的CBV封装详解
Aug 08 Python
Python 可变类型和不可变类型及引用过程解析
Sep 27 Python
python实现音乐播放和下载小程序功能
Apr 26 Python
python基础学习之生成器与文件系统知识总结
May 25 Python
Django框架模板用法详解
Jun 10 Python
Python Web框架之Django框架文件上传功能详解
Aug 16 #Python
基于 Django 的手机管理系统实现过程详解
Aug 16 #Python
python创建与遍历List二维列表的方法
Aug 16 #Python
python每天定时运行某程序代码
Aug 16 #Python
pyinstaller打包opencv和numpy程序运行错误解决
Aug 16 #Python
Python Web框架之Django框架Form组件用法详解
Aug 16 #Python
Python自动化导出zabbix数据并发邮件脚本
Aug 16 #Python
You might like
是否存在第一台收音机的说法
2021/03/01 无线电
smarty的保留变量问题
2008/10/23 PHP
PHP数据库万能引擎类adodb配置使用以及实例集锦
2014/06/12 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
JQuery打造PHP的AJAX表单提交实例
2009/11/03 Javascript
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
由ReactJS的Hello world说开来
2015/07/02 Javascript
javascript实现随机读取数组的方法
2015/08/03 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
简单的vuex 的使用案例笔记
2018/04/13 Javascript
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
JavaScript实现小球沿正弦曲线运动
2020/09/07 Javascript
JS随机密码生成算法
2019/09/23 Javascript
[00:53]2015国际邀请赛 中国区预选赛一触即发
2015/05/14 DOTA
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
在Apache服务器上同时运行多个Django程序的方法
2015/07/22 Python
Python作用域用法实例详解
2016/03/15 Python
利用Python读取文件的四种不同方法比对
2017/05/18 Python
Mac安装python3的方法步骤
2019/08/09 Python
python对常见数据类型的遍历解析
2019/08/27 Python
Python综合应用名片管理系统案例详解
2020/01/03 Python
Python netmiko模块的使用
2020/02/14 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
Lime Crime官网:美国一家主打梦幻精灵系的彩妆品牌
2019/03/22 全球购物
美国台面电器和厨具品牌:KitchenAid
2019/04/12 全球购物
Jack Rogers官网:美国经典的女性鞋靴品牌
2019/09/04 全球购物
化工专业求职信
2014/07/01 职场文书
神龙架导游词
2015/02/11 职场文书
2015年店长工作总结范文
2015/04/08 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
用javascript制作qq注册动态页面
2021/04/14 Javascript
Python的三个重要函数详解
2022/01/18 Python