# Disclaimer: Могут быть очепятки и ошибки
@datalclass
class AviaItem:
city: str
price: str
link: str
def __str__(self) -> str:
return f'Маршрут: {self.city}. Цена: {self.price}. Ссылка-{self.link}'
class AviaParserInterface(ABC):
def __init__(self, page_source: str):
self.soup = BeautifulSoup(page_source, 'html.parser')
@abstractmethod
def get_avia_items(self) -> List[AviaItem]:
pass
class AlrosaParser(AviaParserInterface):
def get_avia_items(self) -> List[AviaItem]:
return [AviaItem(i.select('.city'), i.select('.price'), ...)
for i in self.soup.selector('.content')]
return NULL;
в таком случае.
Read until newline or EOF and return a single str. If the stream is already at EOF, an empty string is returned.
>>> title = 'blabla'
>>> string1 = '{title} added. Which add more?'.replace('{title}', title)
>>> string1
'blabla added. Which add more?'
Очень интересно. Почему надо быть аккуратным и валидировать по каким критериям?
У меня сейчас не сработало.
>>> import numpy as np
>>> arr = np.array( [ [ 1,1,2 ], [ 1,2,3 ] ] )
>>> arr.shape
(2, 3)
>>>
>>> arr = np.array( [ 1,2,3 ] )
>>> arr.shape
(3,)
>>> arr = np.array( [ [ 1,2,3 ] ] )
>>> arr.shape
(1, 3)
self.model.add(layers.Dense(4, activation = "sigmoid", input_shape=(1,)))
self.model.fit(np.array([[1, 1, 1, 1]])