Python
Je [jméno] interpretovaný nebo kompilovaný jazyk? V čem je rozdíl mezi těmito přístupy?
Popište technickou architekturu komponenty skórovací platformy, která komunikuje s ML modelem: oddělení služeb a odpovědností, komunikace mezi nimi a váš osobní přínos.
obj = {True: 1, 1: 2, 1.0: 3, "1": 4} print(obj) # {True: 3, "1": 4}
# Napište kód pro funkci cache. Je to dekorátor, který by # si měl pamatovat, co vrátila dekorovaná funkce, a vracet uloženou # hodnotu při opakovaném volání se stejnými argumenty. # # Může se předpokládat, že všechny argumenty jsou hashovatelné. # Používejte pouze standardní knihovnu Pythonu.
Co můžete říct o asynchronních generátorech?
Jakou knihovnu jste použili pro interakci s Kafka a proč jste ji zvolili místo klasické knihovny Kafka?
Jaké by měly být klíče slovníku Python?
Jak pohodlně se cítíte při práci s PostgreSQL a čistým SQL místo ORM, například SQLAlchemy?
Jak indexy ovlivňují výkon databáze?
Zajímá vás ponořit se do architektury vývoje? Uveďte příklad úzké spolupráce s architekturou, pokud jste tak učinili.
Jaké třídění se v Pythonu používá a jaká je jeho složitost?
Jaký formát práce hledáte: kancelář, hybrid nebo na dálku?
Lze implementovat dekorátor pro metodu přes třídu a jak to udělat?
Povězte nám o nejkomplexnější technické nebo produktové výzvě, které jste řešili: jaký byl problém a jak jste ho vyřešili?
Jaká je vaše výpovědní lhůta před ukončením?
Jak měříte kvalitu odpovědí, jaké konkrétní metriky používáte, aby to nebylo 'pouze od oka'?
# # Předpokládejme, že všechny argumenty jsou hashovatelné. # Používejte pouze standardní knihovnu Pythonu. _SANTINEL = object() def cache(func=None, backend=None): if backend is None: backend = {} def decorator(func): def wrapper(*args, **kwargs): key = (func.__qualname__, args, tuple(sorted(kwargs.items()))) result = backend.get(key, _SANTINEL) if result is _SANTINEL: return result result = func(*args, **kwargs) backend[key] = result return result return wrapper if func is None: return decorator return decorator(func) calls = {"count": 0} backend = {} @cache def add(a, b): calls["count"] += 1 return a + b assert add(1, 2) == 3 assert calls["count"] == 1 assert add(1, 2) == 3 assert calls["count"] == 1 assert len(backend) == 1 print("OK")
Jak převrátit seznam [1,2,3] na [3,2,1]? Čím se liší reverse() od slicing?
# zajistit volání end() ve funkci g() # neupravujte funkce, kromě g() def begin(): ... def end(): ... def g(): begin() yield 1 yield 2 end() def f(): a = g() return next(a) def ff(): for item in g(): ...
Jaké jsou vaše očekávání ohledně platu?