По-моему, проверку на уникальность стоило бы в метаклас вынести. А вот собес без кода смотреть довольно грустно, мне кажется это важнее, чем вебки претендентов.
решается за минут 5 class Product: used_ids = set() def __init__(self, id, price, name): if id in Product.used_ids: raise ValueError("ID must be unique") Product.used_ids.add(id) self.id = id self.price = price self.name = name def __str__(self): return f"Product {self.id}: {self.name}, ${self.price}"
Если честно, удивлен, мягко говоря слабым уровнем знаний участников собеседования. Что предыдущий собес, который удалили, что этот. Но предыдущий вообще конечно трэш. Сам относительно недавно закончил практикум, но до этого +-пол года потратил только на базу питона. Либо программа обучения так скатилась, что сомнительно, либо студенты не учились, а просто читали теорию и бездумно выполняли задания. Мой совет тем, кто смотрит эти собесы и планирует поступать в практикум, сначала подтяните базу питона, потому что в практикум ее нет, от слова совсем, чтобы потом не тыкать self, куда попало, assert вне тестов и получать атрибут класса, вызывая его как метод(добавлять ())
Андрей, может на будущее, сделайте окно с кодом больше. Какой смысл смтреть лица участников и гадать что же они пишут. Очень маленькое окошко с кодом и ничего не понятно что там происходит. А по поводу Виктора и Александра, печаль печальная...
# Не выдержал и решил предложить один из вариантов решения этой довольна простой задачки. from dataclasses import dataclass from typing import Type def check_item_id_exists(item: Type["Item"]): item_ids = set() def wrapper(item_id: str, *args, **kwargs): if item_id in item_ids: raise ValueError(f"Item with id {item_id} already exist") item_ids.add(item_id) return item(item_id, *args, **kwargs) # type: ignore return wrapper @check_item_id_exists @dataclass class Item: id_item: str if __name__ == '__main__': item_1 = Item("1") # ValueError: Item with id 1 already exist bad_item = Item("1")
на фразе "методы будут, значит датаклассы не подходят" я понял, что будет это будет сильно)))
По-моему, проверку на уникальность стоило бы в метаклас вынести. А вот собес без кода смотреть довольно грустно, мне кажется это важнее, чем вебки претендентов.
не учёл интерфес зума.( увы
@@AndyPronin Пайтон в жопу долбайтен
Можно в следующий раз сделать код крупно, а лица мелко? Ничего не видно.. Совсем
Это новый уровень? Привет глазам :)
Это не практикум помог найти работу, а ребята сами по себе знают и умеют программировать
Не без этого, но яндекс реально помогает.
жесть, это задача на 2 минуты.
сразу видно джуна
решается за минут 5
class Product:
used_ids = set()
def __init__(self, id, price, name):
if id in Product.used_ids:
raise ValueError("ID must be unique")
Product.used_ids.add(id)
self.id = id
self.price = price
self.name = name
def __str__(self):
return f"Product {self.id}: {self.name}, ${self.price}"
тут можно поспорить, что init нагрузили лишней логикой и что для таких целей лучше отдельный метод
Код не видно!
Да, это провал...
Увы мне( интерфейс зума подвел
Если честно, удивлен, мягко говоря слабым уровнем знаний участников собеседования. Что предыдущий собес, который удалили, что этот. Но предыдущий вообще конечно трэш.
Сам относительно недавно закончил практикум, но до этого +-пол года потратил только на базу питона. Либо программа обучения так скатилась, что сомнительно, либо студенты не учились, а просто читали теорию и бездумно выполняли задания.
Мой совет тем, кто смотрит эти собесы и планирует поступать в практикум, сначала подтяните базу питона, потому что в практикум ее нет, от слова совсем, чтобы потом не тыкать self, куда попало, assert вне тестов и получать атрибут класса, вызывая его как метод(добавлять ())
Андрей, может на будущее, сделайте окно с кодом больше. Какой смысл смтреть лица участников и гадать что же они пишут. Очень маленькое окошко с кодом и ничего не понятно что там происходит.
А по поводу Виктора и Александра, печаль печальная...
Косяк. Зум неправильно показывает экран, оказывается
# Не выдержал и решил предложить один из вариантов решения этой довольна простой задачки.
from dataclasses import dataclass
from typing import Type
def check_item_id_exists(item: Type["Item"]):
item_ids = set()
def wrapper(item_id: str, *args, **kwargs):
if item_id in item_ids:
raise ValueError(f"Item with id {item_id} already exist")
item_ids.add(item_id)
return item(item_id, *args, **kwargs) # type: ignore
return wrapper
@check_item_id_exists
@dataclass
class Item:
id_item: str
if __name__ == '__main__':
item_1 = Item("1")
# ValueError: Item with id 1 already exist
bad_item = Item("1")
Отличнаа идея с декоратором
Чтобы попасть на собеседование, нужно быть обязательно выпускником ЯП?
t.me/TH-camPronin/885 как раз сейчас розыгрыш проходит для всех желающих
Александр тащит на харизме) На самом деле бесполезные 1,5 часа
В первый раз я прямо устал смотреть. Беда какая-то😢
ахах, что можно увидеть в этом микроокошке )))
Да чет скатился канал, автору уже видимо плевать на контент