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())