Sobes.tech
Junior — Senior
58

Ревью кода и его оптимизация

被问到的公司:

BuddyAI
任务条件

Требуется выполнить проверку качества и улучшить структуру следующего фрагмента кода.

from urllib.request import urlopen
from models import ContentObject, db
import logging
logger = logging.getLogger(__name__)

class GetHTTPContent:
    def __init__(self, target_urls=['https://buddy.ai']):
        self._urls = target_urls

    def get_content(self) -> list[str]:
        for url in self._urls:
            data = urlopen(url).read()
            obj = self.content_obj
            obj.content = data
            db.session.add(obj)
            db.session.commit()
            yield urlopen(url).read()

    @property
    def content_obj(self):
        obj_count = len(ContentObject.query.filter_by().all())
        if obj_count >= 1000:
            logger.warn('Too many requests')
            return
        else:
            obj = ContentObject()
            db.session.add(obj)
            db.session.commit()
            return obj

c = GetHTTPContent(['https://buddy.ai', 'https://google.com'])
print(c.get_content())