python进阶一----函数的参数
来源:互联网 发布:pitstop汉化破解版mac 编辑:程序博客网 时间:2024/04/28 10:21
位置参数
调用函数时根据函数定义的参数位置来传递参数。
# 位置参数def test_param_type1(user,nickname): print("user is %s ,his nickname is %s"%(user,nickname))if __name__ == '__main__': # 位置参数测试 test_param_type1("名字","昵称")
输出:
user is 名字 ,his nickname is 昵称
默认参数
定义函数可以给参数提供默认值,调用函数时可传可不传该默认参数的值PS:所有位置参数必须出现在默认参数前,包括函数定义和调用。
# 默认参数def test_param_type2(user,nickname="默认"): print("user is %s ,his nickname is %s" % (user, nickname))def test_param_type2_2(test_list=[]): test_list.append('END') return test_listdef test_param_type2_3(test_list=None): if test_list is None: test_list = [] test_list.append('END') return test_listif __name__ == '__main__': # 默认参数测试 test_param_type2("名字") test_param_type2("名字", "昵称") # 默认参数测试2,默认参数为数组 # 若设置值,则正常 test = test_param_type2_2([1,2,3]) print("正常调用:",test) test = test_param_type2_2([1, 2, 3]) print("正常调用:",test) # 若使用默认值,多次使用则会出错 """ Python函数在定义的时候,默认参数L 的值就被计算出来了,即[] ,因为默认参数L 也是一个变量,它 指向对象[] ,每次调用该函数,如果改变了L 的内容,则下次调用时,默认参数的内容就变了,不再是函 数定义时的[] 了。所以,定义默认参数要牢记一点:默认参数必须指向不变对象! """ test = test_param_type2_2() print("坑:",test) test = test_param_type2_2() print("坑:",test) test = test_param_type2_3() print("解决方案:",test) test = test_param_type2_3() print("解决方案:",test)
输出:
user is 名字 ,his nickname is 默认user is 名字 ,his nickname is 昵称正常调用: [1, 2, 3, 'END']正常调用: [1, 2, 3, 'END']坑: ['END']坑: ['END', 'END']解决方案: ['END']解决方案: ['END']
可变参数
传入的参数个数是可变的
# 可变参数"""加了星号(*)的变量名会存放所有未命名的变量参数。如果在函数调用时没有指定参数,它就是一个空元组。"""def test_param_type3(name,*lesson): print("姓名:",name) print("课程:") for l in lesson: print(" ",l) print("\n")if __name__ == '__main__': # 可变参数测试 test_param_type3("测试","Chinese","math","English") test_param_type3("测试2","Chinese") test_param_type3("测试3")
输出:
姓名: 测试课程: Chinese math English姓名: 测试2课程: Chinese姓名: 测试3课程:
关键字参数
将键值对, 作为参数传递给函数
# 关键字参数def test_param_type_4(**info): for key, value in info.items(): print("{0} == {1}".format(key, value))if __name__ == '__main__': # 关键字参数测试 test_param_type_4(name="测试", age=20, city="beijing")
输出:
city == beijingage == 20name == 测试
备注
如要同时使位置参数,可变参数,关键字参数这三种参数, 顺序是这样的:
some_func(fargs, *args, **kwargs)
0 0
- python进阶一----函数的参数
- Python进阶04 函数的参数对应
- Python进阶04 函数的参数对应
- Python进阶04 函数的参数对应
- Python进阶04 函数的参数对应
- Python进阶-- 函数的参数对应
- Python进阶04 函数的参数对应
- Python进阶04 函数的参数对应
- Python进阶04 函数的参数对应
- Python进阶04 函数的参数对应
- Python进阶04 函数的参数对应
- <Python进阶读书笔记>之(一) 函数不定参数传递
- Python进阶-函数默认参数
- python进阶教程之函数参数的多种传递方法
- 4.Python进阶_函数参数的对应
- 我与python约个会:14编程进阶~函数的参数
- Python进阶(二十四)-Python中函数的参数定义和可变参数
- python进阶一:高阶函数
- kafka-python批量发送数据的方法
- MySQL存全角字符和半角字符的区别
- Android的IPC机制—— Messenger的使用及源码分析
- Kylin 使用RESTful API进行cube的增量更新
- 20170116C++阶段班04_STL_02vector
- python进阶一----函数的参数
- zuul1.3.0不兼容java7问题
- Spring 配置datasource 三种方式
- 配置一个生产的iptables防火墙规则
- 巧用“搜索”解决自学编程遇到的难题
- Android 自制轮播插件:AutoPlayViewpager
- mysql优化
- image储存和第三方架包
- 云端网盘前景堪忧靠不住,借助花生壳+NAS自建私有云爽歪歪