def add_after(fn):
def test(*args, **kwargs):
fn(*args, **kwargs)
print('after')
return test
def add_100(fn):
def test(*args, **kwargs):
fn(*args, **kwargs)
return fn + 100
return test()
def tag(fn):
def test(*args, **kwargs):
fn(*args, **kwargs)
sum1 = '' + fn(*args, **kwargs) + '
' return sum1
return test
@tag
def render(text):
# 執行其他操作
return text
@tag
def render2():
return 'abc'
print(render('hello')) # 列印出: hello
print(render2()) # 列印出: abc
def tag(name):
def tag1(fn):
def test(*args, **kwargs):
fn(*args, **kwargs)
sum1 = '<>'.format(name=name, fn1=fn(*args, **kwargs))
return sum1
return test
return tag1
@tag(name='p')
def render(text):
# 執行其他操作
return text
@tag(name='div')
def render2():
return 'abc'
print(render('hello')) # 列印出: hello
print(render2()) # 列印出: abc
flag為true,則 讓原函式執行後返回值加100,並返回。
flag為false,則 讓原函式執行後返回值減100,並返回。
def add_num(fn):
def test(flag, *args, **kwargs):
n = fn(*args, **kwargs)
if flag:
return n + 100
elif not flag:
return n - 100
return test
@add_num
def sum1(x, y):
return x + y
print(sum1(false, 10, 20))
Python練習 高階函式
當乙個函式的引數,傳的是另乙個函式的時候,這樣的函式就是高階函式 變數可以指向函式,如果乙個變數指向了乙個函式,那麼,可通過該變數來呼叫這個函式 ap 函式接收兩個引數,乙個是函式,乙個是iterable,map將傳入的函式依次作用到序列的每個元素,並把結果作為新的iterator返回。def f ...
Scala高階 函式練習
可以對整個集合進行操作,比如 建立乙個seq列表,然後用map對集合 2 val salaries seq 2,3,4,5 val newsalaries salaries.map 2 faltmap函式是map一種擴充套件,faltmap中傳入乙個函式,該函式對每個輸入都會返回乙個集合,然後,會把...
內建高階函式練習
332.31321 0 0 1 1 from functools import reduce def str2int s def char2int ch c print c return c ch def fun n1,n2 return n1 10 n2 return reduce fun,map...