AttributeError:无法设置属性 - Python实例属性赋值

时间:2017-10-19 12:30:35

标签: python

我遇到了一个与实例属性相关的奇怪问题。我有一个变量logger,我想成为一个实例属性。但是,我收到错误AttributeError: can't set attribute ,除非我将属性logger移到__init__()函数之外,其中(IIRC)意味着我宣布{{1}作为一个类属性(不是我想要的)。

以下是我的代码片段:

logger

为什么我会收到此错误,以及如何解决此问题?

1 个答案:

答案 0 :(得分:1)

如果您查看source code(或者只是print(scrapy.Spider.logger),您可以看到Spider.loggerproperty,特别是没有定义setter,所以你不能轻易分配给它。

如果您想添加其他处理程序,则不一定需要创建自己的记录程序,因此我不确定您在此之后尝试实现的目标。虽然你真的''想要覆盖默认的self.logger,因为您要对Spider进行子类化,没有什么能阻止您添加以下内容:

@property
def logger(self):
    return logging.getLogger('my_logger')

到你的班级。