python functional programtest test

decorator

无参数 decorator

1
2
3
4
5
6
7
8
9
10
11
12
import functools

def (func):

def wrapper(*args,**kw):
print('call %s()'%func.__name__)
return func(*args,**kw)
return wrapper

@log
def add(a,b)
return a+b

带参数的decorator

1
2
3
4
5
6
7
8
9
10
11
12
import functools

def (func):

def wrapper(*args,**kw):
print('%s %s()'%(text,func.__name__))
return func(*args,**kw)
return wrapper

@log('abc')
def add(a,b):
return a+b

partial function

简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数

1
2
import functools
int2 = functools.partial(int,base=2)

test

doctest

1
2
3
4
5
6
7
8
9
10
 '''
>>> add(1,2)
3
'''
def add(a,b):
return a+b

if __name__ == "__main__":
import doctest
doctest.testmod()

uinit test

1
2
3
4
5
6
7
8
9
10
11
 def add(a,b):
return a+b

if __name__ == "__main__":
import unittest

class Testadd(unittest.TestCase):
def test_add(self):
self.assertEqual(add(2,3),5)

unittest.main()