偏函数

 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))

 

posted @ 2019-07-29 19:43  巨菜的小鸟  阅读(120)  评论(0编辑  收藏  举报