Python学习之路5 - 函数
函数
定义方式:
def func(): "这里面写函数的描述" 这里写代码 return x #如果没有返回值就叫"过程",函数和过程的区别就是有无返回值
实例
def fun1(): "这里是测试" print('这是第一个函数') return 0 fun1() #调用函数
函数传参
def test(x,y,z): print(x) print(y) print(z) test(3,3,5) #这样传的参数叫做位置参数, 位置是一一对应的 test(x=5,y=4,z=3) #这样传的参数叫做关键参数, 位置可以不用一一对应
这里需要注意的是,关键参数是不能写在位置参数前面的。
例如 test(x=4,5,5) 这样x是用了关键参数,y和z用了位置参数,这样就是错的。
但是 test(3,y=4,z=6) 这样位置参数x在关键参数y和z的前面,这样就是可以的。
同理 test(3,z=6,y=4) 这样也是可以的。
参数组
如果我要传入的参数数量不固定,就在形参列表里写 *变量名 来实现。
def test(*args): print(args) #打印出来的是一个元组 test(3,3,5) #这样我传多少个参数都没问题了 test(*[3,4,5,6,6,4]) #这是第二种传值方式
传入字典
如果我想传入字典就在形参的位置用 **变量名 来实现
def test(**args): print(args) #打印出来的是一个字典 test(name='vector',age=3)
高阶函数(满足下列条件之一就是高阶函数)
a:把一个函数名当作形参传给另一个函数(在不修改被装饰函数源代码的情况下修改其功能,但是调用方式变了)
def bar(): print('this is bar...') bar() print('----------------------------------') def test(func): #在这里增加了功能 print(func) test(bar) #但是这里修改了调用方式
b:返回值中包含函数名(不修改函数的调用方式,而修改函数功能)
def bar(): print('this is bar...') bar() print('----------------------------------') def test(func): #在这里增加了功能 print(func) return func #这里返回了函数地址 bar = test(bar) #将函数地址赋给一个变量,该变量和传入函数同名 bar() #这个变量加上括号,就可以当函数用了,同时又没有修改函数的调用方式
嵌套函数
x = 1 def test1(): def test2(): def test3(): x = 3 print(x) test3() test2() test1()
像这样在一个函数里面再定义一个函数就叫做嵌套函数。
我是Vector,谢谢关注。