偏函数
1 # int()函数:可以将字符串转为整型,默认是十进制转换,可以设置进制格式。 2 print(int("123")) 3 print(int("1101")) # 默认int转换时为十进制数 4 5 # 可以使用base设置进制格式,一般常用的进制格式为 2 8 10 16 6 print(int("1101", base=2)) 7 8 # 仿写偏函数的功能 9 def myInt(num): 10 return int(num, base=2) 11 myInt("1101") # == int("1101", base=2) 12 print(myInt("1101")) 13 14 # 偏函数:把函数的某些参数固定(默认值),返回一个新的函数, 15 # 使用偏函数后再调用函数会简单点。 16 17 # 导入functools 模块:import functools 18 # functools.partial 可以创建偏函数,可以不再使用函数的方式创建 19 20 import functools 21 22 # 语法格式:functools.partial(即将更改的函数, 原函数的各个参数) 23 # 第一个参数为函数名 24 # 从第二个参数开始:为即将固定的参数, 从左向右依次给原函数的参数赋值 25 # 注:如果在偏函数中原函数的参数未全部赋值,后期调用函数时, 26 # 从没有值的参数开始赋值 27 28 twoBaseInt = functools.partial(int, base=2) 29 print(twoBaseInt("1100")) 30 31 32 def printAB(a,b): 33 print("a ===", a) 34 print("b ===", b) 35 36 newAB = functools.partial(printAB) 37 newAB(1,2) 38 nextAB = functools.partial(printAB, 100) 39 nextAB(200) 40 nextAB1 = functools.partial(printAB, 222, 333) 41 nextAB1() 42 43 nextAB2 = functools.partial(printAB, b=3000) 44 nextAB2(2) 45 46 def divTwo(a, b): 47 return a // b 48 49 print(divTwo(10, 3)) # 10 // 3 50 print(divTwo(18, 2)) # 18 // 2 51 newDiv = functools.partial(divTwo, b = 2) 52 print(newDiv(10)) 53 print(newDiv(21))