在python中使用来自不同模块的函数作为装饰器

时间:2017-02-13 00:13:39

标签: python oop python-decorators

我已经阅读了几篇关于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()

0 个答案:

没有答案