Python中函数的定义以及形参实参小结
来源:互联网 发布:免费淘宝装修生成 编辑:程序博客网 时间:2024/05/19 09:49
1.python中函数的定义
Python中函数的定义形式:
def func_name(parameter1,parameter2,...):语句段return语句
例子:
def printhello(personname):return "Hello," + personname + "!"
2.在函数体内修改参数内容会影响到函数外的对象吗?
(1)如果数字、字符串或元组,本身就是不可变的,自然也不会影响到函数体外的对象
(2)如果是列表或字典,那么函数内修改参数内容,就会影响到函数体外的对象。
备注:这里的修改参数是修改参数对象内部的值,不是赋值哦。即var[1]='hello'和var=['hello','world']区别。即使是列表,在函数体内对参数重新赋值了,不会影响到函数体外的对象哦。注意和c++的比较。
3.python中传递实参是可以指定参数的名字 以及默认参数的定义
def foo(familyname,givenname):#param1,param2就是位置参数#调用foo函数时,参数的顺序是由严格顺序的。#eg: foo('wang', 'hao') 是正确的#eg: foo('hao', 'wang') 是错误的#eg: foo(familyname='wang', givenname='hao') 是正确的#eg: foo(givenname='hao', familyname='wang') 是正确的另外,定义函数时可以定义默认参数,形式如下:
def foo(familyname='wang', givenname='hao'):
4.python中可变参数
(1)函数定义可变参数
形式1:
def foo(*params):#params在函数体内的类型是元组#调用方式是foo(1, 4, 56)
形式2:
def foo(**params):#params在函数体内的形式是字典#调用方式是foo(x=1, y=4, z=56)
举一个普通参数,形式1(位置参数)和形式2(关键字参数)联合一起的例子,如下所示:
def print_params(x, y, z=3, *pospar, **keypar): print x, y, z print pospar print keyparif __name__ == '__main__': print_params(1, 2, 3, 5, 6, 7, foo=1, bar=2)上述程序输出结果为:
1 2 3(5, 6, 7){'foo': 1, 'bar': 2}
备注:我们通常用这两种可变参数来使函数收集参数,所有我们经常会见到一种函数的定义:
def func(fargs, *args, **kwargs)其中fagus是普通参数,*args和*kwargs用来收集不定量的形参。
5.形参的两种特殊实参传递形式
(1)以元组作为实参
def foo(familyname, givenname): print 'my familyname is ' + familyname print 'my givenname is ' + givennameif __name__ == "__main__": username = ('wang', 'hao') foo(*username)
(2)以字典作为实参
def foo(familyname, givenname): print 'my familyname is ' + familyname print 'my givenname is ' + givennameif __name__ == "__main__": username = {'givenname':'hao', 'familyname':'wang'} foo(**username)
备注:python中所谓的关键字参数和位置参数,都是来描述实参的形式。形参中有默认参数概念。
0 0
- Python中函数的定义以及形参实参小结
- 函数的定义声明 用法 形参实参 return关键字
- 函数的定义方式 及 函数的形参与实参
- python函数形参和实参
- 二维数组作为函数的实参,定义函数形参的方法
- 二维数组作为函数的实参,定义函数形参的方法
- 函数的类型,函数的声明,函数的定义,函数的调用,函数嵌套,函数递归,形参实参
- C语言中函数调用、实参、形参的选择
- 4-8-实参与形参、函数声明与定义、函数读取顺序、可变参数的函数、函数生存周期
- python形参实参
- 已定义的函数有返回值,函数调用可以作为一个函数的实参,但是不能作为形参
- 已定义的函数有返回值,函数调用可以作为一个函数的实参,但是不能作为形参
- 函数的形参和实参
- 函数调用,形参实参的变化
- 函数的形参和实参
- 函数分类、函数声明和定义、函数调用,形参实参、函数嵌套调用
- 《IOS_C语言》函数分类、函数声明和定义、函数调用、形参实参、函数嵌套调用
- python中形参与实参的拆包问题
- oracle的执行计划
- 常见集中的排序算法实现
- js客户端判断文件大小限制上传
- C#中委托和方法学习心得
- java中线程中的sleep的使用(计数器)
- Python中函数的定义以及形参实参小结
- 责任链模式
- 广州传智播客学Java推荐就业吗?
- 【面试题二十三】从上往下打印二叉树
- CloudStack 4.3 API 开发指南
- 在BOS中客户端打开报License问题
- linux操作系统入门小结(一)
- DELPHI链表
- Pentium CPU与多核CPU