python中聲明函數(shù)是什么意思?
python中聲明函數(shù)就是聲明類(lèi)型是function的變量, 函數(shù)名就是變量名。
變量作為函數(shù)的參數(shù)
def func2(x):
print('函數(shù)里面:', x)
a = 10
func2(a)
func2(func1)
變量作為函數(shù)的返回值
def func3(x, y):
num = x + y
return num
print(func3(1, 2))
def func4():
def func5():
print('函數(shù)5')
return func5
print(func4())
func4()()
裝飾器的組成
裝飾器 = 實(shí)參高階函數(shù) + 返回值高階函數(shù) + 糖語(yǔ)法
1.實(shí)參高階函數(shù)
有一個(gè)參數(shù)是函數(shù)的函數(shù)就是實(shí)參高階函數(shù)
問(wèn)題1: 按個(gè)位數(shù)的大小對(duì)num中的元素從小到大排序
# [90, 90, 1, 23, 74, 78]
def func1(item):
return item % 10
num = [1, 78, 90, 23, 74, 90]
num.sort(key=func1)
num.sort(key=lambda item: item % 10)
print(num)
問(wèn)題2: 按各位數(shù)之和從大到小排序
# 1, 15, 9, 5, 11, 9 -> [78, 74, 90, 90, 23, 1]
num = [1, 78, 90, 23, 74, 90]
def func2(item):
sum = 0
for x in str(item):
sum += int(x)
return sum
num.sort(reverse=True, key=func2)
print(num)
1.返回值高階函數(shù)
函數(shù)的返回是一個(gè)函數(shù),這樣的函數(shù)就是返回值高階函數(shù)
情況一: 真正的返回值高階函數(shù)
def func1():
def func2():
print('函數(shù)2')
return func2
情況二: 假的返回值高階函數(shù)
def func3():
print('函數(shù)3')
def func4():
return func3
練習(xí): 聲明一個(gè)函數(shù)operation,要求可以接收一個(gè)字符參數(shù), 最后根據(jù)字符值的不同返回不同功能的函數(shù)
+ -> 求多個(gè)數(shù)和功能的函數(shù) - -> 求多個(gè)數(shù)的差的功能的功能, * -> 求多個(gè)數(shù)的乘積的功能
operation('+')(1, 2, 4, 5) -> 12
operation('-')(1, 2, 4, 5) -> -10
operation('*')(1, 2, 4, 5) -> 40
def operation(char):
# char = '+'
if char == '+':
def sum(*args):
# args = (1, 2, 4, 5)
temp = 0
for x in args:
temp += x
return temp
return sum
elif char == '-':
def diff(*args):
temp = args[0]
for x in args[1:]:
temp -= x
return temp
return diff
print(operation('+')(1, 2, 4, 5))
print(operation('-')(1, 2, 4, 5))