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