@myDecorator2
@myDecorator1
def myname(name):
return name
執行結果:
abc_TOMLIN_xyz
說明:
(3) 接收參數的裝飾器
以下是一個例子:
#接收參數的裝飾器
def myDecorator(chineseUpper):
def innerDecorator(func):
def wrapper(*args, **kwargs):
up = '零壹貳參肆伍陸柒捌玖'
lw = '〇一二三四五六七八九'
r = func(*args, **kwargs)
m = ''
if chineseUpper:
for k in str(r):
m+=up[int(k)]
else:
for k in str(r):
m+=lw[int(k)]
return m
return wrapper
return innerDecorator
# 使用裝飾器並傳參數
@myDecorator(False)
def total(price, amount):
tot = price*amount
if tot>100000:
tot*=0.8
return int(tot)