二、Python函数

1.函数参数

a. 必选参数

1
2
3
4
def add(x,y):
return x+y

add(5,3)

b.默认参数

1
2
3
4
def add(x,y,z=1)
return x+y+z

add(5,3)

c.可变参数

用法一:

1
2
3
4
5
6
7
8
9
def add(*numbers):
sum = 0
for i in numbers:
sum = sum+ i
return sum

add()
add(1,2)
add(2,3,4)

用法二:

1
2
3
4
5
6
7
8
9
def add(*numbers):
sum = 0
for i in numbers:
sum = sum+ i
return sum


a = [1,2,3,4] #这个地方的*a表示数组a的所有元素。
add(*a)

d.关键字参数

1
2
3
4
5
6
7
8
def add(**key):
sum =0
for k,v in key.items():
sum+=v
return sum

dic = {'age':10,'time':30}
add(**dic)

2.高阶函数

1
2
3
4
5
6
7
8
def fun(g,arr):
return [g(x) for x in arr]

def double(arr):
return 2*arr

arr=[1,23,3]
fun(double,arr)

3.函数修饰器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import time

def time_i(func):
def wrapper(*args,**kwargs):
start_time = time.time()
result = func(*args,**kwargs)
end_time = time.time()
print(f"Function {func.__name__} took {end_time - start_time} seconds to run")
return result
return wrapper

@time_i
def add(x,y):
return x+y

add(3,4)

其实函数的修饰器也很容易理解,他的主要目的,或者说我们主要用它来做什么我们应该理解。他可以不改变我们的函数,然后在我么运行的时候,我们可以更加方便的获取一些运行日志,或者简单的例如上面的只想知道运行的一个时间。