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操作xml文件示例
Apr 07 Python
Python实现的数据结构与算法之快速排序详解
Apr 22 Python
Python实现的彩票机选器实例
Jun 17 Python
对Tensorflow中的矩阵运算函数详解
Jul 27 Python
解决Python一行输出不显示的问题
Dec 03 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
Oct 06 Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 Python
python双端队列原理、实现与使用方法分析
Nov 27 Python
Selenium环境变量配置(火狐浏览器)及验证实现
Dec 07 Python
详解python中的异常和文件读写
Jan 03 Python
python字符串常规操作大全
May 02 Python
Python使用BeautifulSoup4修改网页内容
May 20 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
php结合飞信 免费天气预报短信
2009/05/07 PHP
通过php快速统计某个数据库中每张表的数据量
2012/09/04 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
2014/06/21 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
2014/07/01 PHP
laravel 5 实现模板主题功能(续)
2015/03/02 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
2010/03/16 Javascript
js创建一个input数组并绑定click事件的方法
2014/06/12 Javascript
js用拖动滑块来控制图片大小的方法
2015/02/27 Javascript
js实现界面向原生界面发消息并跳转功能
2016/11/22 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
bootstrap导航栏、下拉菜单、表单的简单应用实例解析
2017/01/06 Javascript
搭建简单的nodejs http服务器详解
2017/03/09 NodeJs
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
对python3新增的byte类型详解
2018/12/04 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
2019/03/01 Python
pytorch 实现删除tensor中的指定行列
2020/01/13 Python
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
金融管理应届生求职信
2014/02/20 职场文书
供应链金融服务方案
2014/05/25 职场文书
销售团队获奖感言
2014/08/14 职场文书
乡文化站暑期培训方案
2014/08/28 职场文书
教师工作表现评语
2014/12/31 职场文书
对外汉语教师推荐信
2015/03/27 职场文书
2015年乡镇党务公开工作总结
2015/05/19 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书
用javascript制作qq注册动态页面
2021/04/14 Javascript
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python