как добавить свойство в родительский класс из дочернего класса - PullRequest
0 голосов
/ 08 ноября 2019

Как добавить свойства в родительский класс из дочернего класса, чтобы я мог получить доступ к свойству в обоих классах (python). Родительский класс - это пакет, который я импортирую в свой файл python и переопределяю один из его методов в дочернем классе, и я определяюпеременная в этом переопределенном методе, которая мне нужна в другом методе дочернего класса. Я определяю lst в методе make_request_from_data, который я хочу использовать в методе разбора

from scrapy_redis.spiders import RedisSpider,RedisMixin

import copy


from scrapy.item import Item, Field
from test1.items import Test1Item

class myspider(RedisSpider,RedisMixin):
    name = "me"
    redis_key = "me:start_urls"
 #overide  
 def next_requests(self):
    """Returns a request to be scheduled or none."""
    use_set = self.settings.getbool('REDIS_START_URLS_AS_SET',False)
    fetch_one = self.server.spop if use_set else self.server.lpop
    # XXX: Do we need to use a timeout here?
    found = 0
    # TODO: Use redis pipeline execution.
    while found < self.redis_batch_size:
        data = fetch_one(self.redis_key)
        if not data:
            # Queue empty.
            break
        req = self.make_request_from_data(bytes(data))
        if req:
            yield req
            found += 1
        else:
            self.logger.debug("Request not made from data: %r", data)

    if found:
        self.logger.debug("Read %s requests from '%s'", found,self.redis_key)    

# override def make_request_from_data (self, data):global lst lst = [] lst = data.decode ("utf-8"). split ("<") </p>

    return self.make_requests_from_url(lst[0])



#override
def parse(self, response):

    img_urls = []

    item = Test1Item()
    img_urls.append(response.url)

    item["image_urls"] = img_urls

    item["image_save"] = [lst[2]]
    item["image_name"] = [lst[1]]


    return item

Я использую ключевое слово global для свойств в родительской переопределенной функции в дочернем классе, но моя проблемане решает, пожалуйста, дайте мне другие решения.

...