Python
obj = {True: 1, 1: 2, 1.0: 3, "1": 4} print(obj) # {True: 3, "1": 4}
# Napišite kód pre funkcie cache. Je to dekorátor, ktorý by # si mal pamätať, čo vrátila dekorovaná funkcia, a pri opakovanom # volaní s rovnakými argumentmi vrátiť uloženú hodnotu. # # Môže sa predpokladať, že všetky argumenty sú hashovateľné. # Používajte iba štandardnú knižnicu Pythonu.
Čo môžete povedať o asynchrónnych generátoroch?
Ktorú knižnicu ste použili na interakciu s Kafka a prečo ste si vybrali práve túto namiesto klasickej knižnice Kafka?
Aké by mali byť kľúče slovníka Python?
Ako pohodlne sa cítite pri práci s PostgreSQL a čistým SQL namiesto ORM, ako je SQLAlchemy?
Ako ovplyvňujú indexy výkon databázy?
Zaujíma vás ponorenie sa do architektúry vývoja? Uveďte príklad úzkej práce s architektúrou, ak ste to robili.
Aké zoradenie sa používa v Pythone a aká je jeho zložitosť?
Aký formát práce hľadáte: kancelária, hybrid alebo na diaľku?
Je možné implementovať dekorátor pre metódu cez triedu a ako to urobiť?
Povedzte nám o najzložitejšej technickej alebo produktovej výzve, s ktorou ste sa stretli: aký bol problém a ako ste ho vyriešili?
Aká je vaša lehota na oznámenie pred odchodom?
Ako meriate kakovost odgovorov, katere konkretne metrike uporabljate, da to ni 'na oko'?
# # Môžeme predpokladať, že všetky argumenty sú hashovateľné. # Používajte iba štandardnú knižnicu Python. _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")
Ako prevrnuti seznam [1,2,3] v [3,2,1]? Čim se razlikuje reverse() od rezanja?
# zabezpeči volanie end() vo funkcii g() # neupravuj funkcie, okrem 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(): ...
Aké sú vaše očakávania ohľadom platu?
Čo sú magické metódy (dunder metódy)? Prečo sa nazývajú magické?
Prečo je možné násobiť reťazec číslom, ale nie je možné sčítať reťazec s číslom?