我有一个日志类,它允许在日志中添加前缀。如果没有给定前缀,则应默认为“”。在class PrefixedLog(Loggable):
def __init__(self):
self._prefix = None
@property
def prefix(self):
if self._prefix:
return self._prefix
else:
return ""
@prefix.setter
def prefix(self, value):
self._prefix = value
@property
def log(self):
if not hasattr(self, '_log') or not self._log:
log = logging.getLogger(self.__class__.__name__)
self._log = LoggerAdapter(self._prefix, log)
return self._log
我有另一个类,它创建了另一个类的对象,我试图在其中设置前缀:
^{pr2}$
带前缀的类:class B(PrefixedLog):
self.another_class = AnotherClass()
if self.prefix:
self.another_class.prefix = 'desired prefix'
我得到了这个错误:AttributeError: 'B' object has no attribute '_prefix'
在if self.prefix:
行。在
我已经找到了解决方案,但大多数都与格式问题有关…我确定没有选项卡。有什么问题吗?提前谢谢。在
另外-我想确保即使一个类没有特别设置前缀,那么前缀也会默认为“”,没有任何错误,也就是说,我不必回到所有的类并设置前缀。在