Я нашел, что ярлык "Супер +W" показывает все окна, даже если существует проблема, которую Вы описываете. Так, просто временное решение, но это работает хорошо :-)
Python автоматически передает экземпляр класса в качестве ссылки. (Аргумент self
, который присутствует во всех методах класса.)
Вы можете сделать:
def formatHeader(fn):
def wrapped(self=None):
return '<div class="page_header">'+fn(self)+'</div>'
return wrapped
Вы опускаете параметр self, который присутствует в недекорированной функции (createHeader в вашем случае).
def formatHeader(fn):
from functools import wraps
@wraps(fn)
def wrapper(self):
return '<div class="page_header">'+fn(self)+'</div>'
return wrapper
Если вы не уверены в сигнатуре функции, которую хотите украсить, вы можете сделайте это довольно общим следующим образом:
def formatHeader(fn):
from functools import wraps
@wraps(fn)
def wrapper(*args, **kw):
return '<div class="page_header">'+fn(*args, **kw)+'</div>'
return wrapper