Python基础(十一): 函数的几种使用方式

2018-03-03  本文已影响5人  伯wen

偏函数, 高阶函数, 返回函数, 匿名函数, 闭包

偏函数

def aFunc(a, b, c, d=1):
    print(a + b + c + d)
def bFunc(a, b, c, d=2):
    aFunc(a, b, c, d)
bFunc(1, 2, 3)      # 打印: 8
bFunc = functools.partial(aFunc, d = 2)
bFunc(1, 2, 3)      # 打印: 8
import functools
int2 = functools.partial(int, base=16)
result = int2("15")
print(result)       # 打印: 21, 认为15是十六进制数, 转为十进制就是21

高阶函数

temp = [{"name": "张三", "age" : 18}, {"name" : "李四", "age" : 20}, {"name" : "王五", "age" : 19}]
def value(x):
    return x["age"]
result = sorted(temp, key=value)
print(result)
# 打印: [{'name': '张三', 'age': 18}, {'name': '王五', 'age': 19}, {'name': '李四', 'age': 20}]

返回函数

def aFunc(symbol):
    def add(num1, num2):
        print(num1 + num2)
    def subtract(num1, num2):
        print(num1 - num2)

    if symbol == "+":
        return add
    if symbol == "-":
        return subtract

aFunc("+")(1, 2)        # 打印: 3
aFunc("-")(5, 3)        # 打印: 2

匿名函数

lambda 参数列表: 表达式
func = lambda x, y : x + y
result = func(1, 2)
print(result)       # 打印: 3

闭包

def test1():
    a = 10
    def test2():
        print(a)
    return test2
newFunc = test1()
newFunc()           # 打印 10
上一篇 下一篇

猜你喜欢

热点阅读