can't set attribute python_AttributeError:无法设置属性Python实例属性assignmen

我遇到了一个与实例属性有关的奇怪问题。我有一个变量logger,我希望它是一个实例属性。但是,我得到错误AttributeError: can't set attribute,除非将属性logger移到__init__()函数之外,这意味着我将logger声明为类属性(不是我想要的)。在

下面是我的代码片段:class MyScraper(ABC,scrapy.Spider):

"""Abstract base class for scraping non JS Web pages"""

#logger = None # Commented out, as I don't want class instance

def __init__(self, *args, **kwargs):

self.connection = None

self.channel = None

self.topic = None

log_format = "%(asctime)s - %(levelname)s - %(message)s"

log_level = 10

handler = TimedRotatingFileHandler("{0}.log".format(kwargs['log_filename']), when="midnight", interval=1)

handler.setLevel(log_level)

formatter = logging.Formatter(log_format)

handler.setFormatter(formatter)

# add a suffix which you want

handler.suffix = "%Y%m%d"

#need to change the extMatch variable to match the suffix for it

handler.extMatch = re.compile(r"^\d{8}$")

self.logger = logging.getLogger('my_logger') #

# finally add handler to logger

self.logger.addHandler(handler)

# Set up messaging infrastructure ...

为什么我会遇到这个错误,以及如何修复它?在

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值