刚开始学习python,python相对于java确实要简洁易用得多。内存回收类似hotspot的可达性分析, 不可变对象也如同java得Integer类型,with函数类似新版本C++的特性,总体来说理解起来比较轻松。只是函数部分参数的"*"与"**",闭包等问题,着实令人迷糊了一把,弄清概念后写下此文记录下来,也希望本文能够帮助其他初学者。
所以本文是一篇学习笔记,着重于使用的细节和理解上,首先分别介绍了函数各种参数类型在调用和声明时的区别,及其在混用时需要注意的一些细节,之后讲了闭包相关的内容。如果有不对的地方欢迎指正。
函数参数不带"","" 与 ""的区别
**理解这个问题得关键在于要分开理解调用和声明语法中3者得区别.
函数调用区别
1. 不同类型的参数简述
#这里先说明python函数调用得语法为:
复制代码 代码如下:
func(positional_args, keyword_args,
*tuple_grp_nonkw_args, **dict_grp_kw_args)
def test(a,b,c,d,e):
print a,b,c,d,e
举个例子来说明这4种调用方式得区别:
复制代码 代码如下:
test(1,2,3,4,5)
1 2 3 4 5
a,b,c,d,e = 1,2,3,4,5
print a,b,c,d,e
test(a=1,b=3,c=4,d=2,e=1)
1 3 4 2 1
a=1
b=3
c=4
d=2
e=1
print a,b,c,d,e
x = 1,2,3,4,5
test(*x)
1 2 3 4 5
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8