Я знаю, что есть похожий вопрос, но мой сценарий несколько отличается: обратитесь к кодам:
class MyClass(object):
def __init__(self, log_location)
self.logs = logging(log_location) # create log object by the log_location, this object should be used by the decorator fucntion
def record_log(log_object):
""" this is the decorator function
"""
def deco(func):
def wrap(*args, **kwargs):
rs = func()
# use log object to record log
if rs:
log_object.record('success')
else:
log_object.record('fail')
return wrap
return deco
@record_log(self.logs)
def test(self):
rs = do_some_thing
if rs:
return True
return False
def main():
my_class = MyClass()
my_class.test()
Но есть такая ошибка:
@record_log(self.logs)
NameError: name 'self' is not defined
Должен ли я использовать атрибут экземпляра self.logs в функции декоратора в таком сценарии?
Большое спасибо!
@decorator
отсутствует - person Zaaferani   schedule 22.04.2015