Python函数说明
Posted longerlong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python函数说明相关的知识,希望对你有一定的参考价值。
一、函数
函数定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可
在不同的机器语言中,函数名字的叫法不尽相同。在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method。
函数形式:
def func(kwargs,*kwargs,**kwargs):#函数名func() ......#函数内的操作 pass#函数内的操作
调用函数:func()即可。
kwargs:用于单一的变量的传递
*kwargs:用于元组的传递,并且可以传递多个参数,可以用于参数个数不确定的传递
**kwargs:用于字典的传递,并且可以传递多个参数,可以用于参数个数不确定的传递
比如:
def test(kwargs,*kwargs1,**kwargs2): print(kwargs) print(kwargs1) print(kwargs2) test("long") test("long","love","you") test("long","love","you",who = "long",what = "love",whom = "you")
test("long",who = "long",what = "love",whom = "you")
打印的结果为:
long () {} #传递了kwargs,*kwargs以及**kwargs其他为空 long (‘love‘, ‘you‘) {} #传递了kwargs和*kwargs,**kwargs空 long (‘love‘, ‘you‘) {‘who‘: ‘long‘, ‘whom‘: ‘you‘, ‘what‘: ‘love‘}#传递了kwargs,*kwargs以及**kwargs long () {‘who‘: ‘long‘, ‘whom‘: ‘you‘, ‘what‘: ‘love‘}#传递了kwargs,**kwargs,kwargs为空
二、函数参数传递
一般的调用函数都会对变量进行参数的传递,完成程序的执行操作。
对于单一变量的函数中,需要保持实参与实参一一对应,进行传递。或者指定对应的参数来操作。比如:
def test(x,y): print(x) print(y) test(2,3) test(y=3,x=4)
2 3 4 3
当然这两者也可以结合,但是必须要保证:关键字的参数传递在其他类型传递之后。
test(4,y=3) test(y=3,4)#error
第二项,系统会报错:positional argument follows keyword argument
三、局部变量与全局变量
def calc(n): print(n) if int(n/2) > 0: return calc(int(n/2)) print("---->",n) calc(10) 结果: 10 5 2 1 ----> 1
在使用递归函数时,需要注意以下几点:
1. 必须有一个明确的结束条件
2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少
3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)
以上是关于Python函数说明的主要内容,如果未能解决你的问题,请参考以下文章
在 Python 多处理进程中运行较慢的 OpenCV 代码片段