我已经阅读了几篇关于python中装饰器用法的文章,并且正在尝试一些关于如何使用它的例子。当我尝试将decorator函数和orignal函数都放在同一个脚本中时,我能够做到正确。 我正在尝试2组代码,我有特定的意图要执行。请帮助我理解我犯的错误。
1.在这个例子中,我用脚本中的装饰函数写了" dec1.py"我试图在我的第二个脚本" script.py"中导入它,我得到TypeError" wrapper1()不带参数(给定1个)"
###########dec1.py#####################
def setup (setup_funct):
def wrapper1():
print "******Test Section setup******"
return setup_funct()
return wrapper1
###########script.py################
import dec1
class setup(object):
@dec1.setup
def tc_setup():
print "Configure X"
c1=setup()
c1.tc_setup()
2.是否可以在类下定义一个方法用作装饰器函数?这是我想要运行但它给我相同的TypeError" TypeError:wrapper1()不带参数(给定1)"
class Common(object):
def setup (setup_funct):
def wrapper1():
print "******Test Section setup******"
return setup_funct()
return wrapper1
c1=Common()
@c1.setup()
def tc_setup():
print "Configure X"
tc_setup()