python教程—如何修饰类中的方法?-Python实用宝典

python教程—如何修饰类中的方法?

我试图在类中修饰一个方法,但是python抛出了一个错误。我的课是这样的:

我试图在类中修饰一个方法,但是python抛出了一个错误。我的课是这样的:

    from pageutils import formatHeader class myPage(object): def __init__(self): self.PageName = '' def createPage(self): pageHeader = self.createHeader() @formatHeader #<----- decorator def createHeader(self): return "Page Header ",self.PageName if __name__=="__main__": page = myPage() page.PageName = 'My Page' page.createPage()

pageutils.py:

    def formatHeader(fn): def wrapped(): return '<div class="page_header">'+fn()+'</div>' return wrapped

Python抛出以下错误

self.createHeader()
TypeError: wrapped() takes no arguments (1 given)

我在哪里闲逛?

回答

Python自动将类实例作为引用传递。(self参数,在所有类方法中都可以看到)。

你能做的:

    def formatHeader(fn): def wrapped(self=None): return '<div class="page_header">'+fn(self)+'</div>' return wrapped

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
1

发表评论