收集参数又叫可变参数。仅需在参数前边加上星号(*)即可。除了打包外还可以解包,解包指的是对实际参数的解包,只需在前面加一个*即可,如test(*a)。
Python的所有函数都是有返回值的。
在定义元组时,有时候不需要加小括号。因为逗号才是关键。且在函数的返回值中,返回值不一定全为整型,也可以为其他形式,还可以为列表,元组。
在函数里边定义的参数以及变量都称为局部变量,函数里边可以包含全局变量,但不要试图在函数中改变全局变量,因为Python会自动在函数内新建一个名字一样的局部变量代替。而且修改的结果只会修改到局部变量,而不会影响到全局变量。如果必须改变可以使用global函数。
内部函数的作用于就在外部函数之内。
闭包closure--函数式编程,在Python中指的是如果在一个内部函数中,对外部作用域(但不是全局作用域)的变量进行引用,这个内部函数就称为闭包。内部函数仍然不能修改外部调用参数。与global函数一样,如果必须修改外部的被调用参数,可以使用nonlocal函数。
lambda表达式创建匿名函数,很好用。
两个BIF:filter()和map() 用法分别如下:list(filter(lambda x : x % 2,range(10))) list(map(lambda x : x * 2,range(10)))
递归,原理上讲就是函数内部调用自身的一个行为(感觉就相当于无限循环一样),在Python中可以通过以下设定:
>>> import sys
>>> sys.setrecursionlimit(1000) #将递归限制设置为1000层。同时Ctrl+C可以终止程序,避免Python崩溃。
网友评论