一起了解下Python函数式编程(一)
通过def关键字标识,入参可以无参也可以有参数,函数体内可以有返回值也可以没有返回值;
入参的话,写在()内,注意一些特殊传参,比如*args,**kwargs等可变长参数,它们的区别在于:*args传入元组类型,可有多个,**kwargs传入字典类型,也可有多个;
-
书写函数需要注意行的缩进,注意英文冒号:不要遗漏等;
参数传递:
def fun1(a):a = 5return aa1 = 10fun1(a1)print(a1) #10
def fun2(a):a.append(2021)values = [True, 3.14, (28,)]fun2(values)print(values) #[True, 3.14, (28,), 2021]
变量作用域:
a = 0b = 0def fun3():global a #注意不能这样写:global a = 1a = 1def fun4():b = 1fun3()print(a) #1fun4()print(b) #0
函数式编程:
闭包:允许返回值为函数,先思考下return fun()和return fun的区别;
匿名函数:借助lambda表达式创建的函数,代码紧凑简洁,先思考下lambda怎么创建匿名函数;
高阶函数:允许函数作为参数的函数,先思考下Python支持的高阶函数都有哪些?有什么特点?
当然,面向对象里也会存在函数(准确的应该称为方法)的内容,涉及到的知识点就更多了,以后梳理面向对象时再做详解吧!
