Python
obj = {True: 1, 1: 2, 1.0: 3, "1": 4} print(obj) # {True: 3, "1": 4}
# Scrieți cod pentru funcția cache. Este un decorator care trebuie # să-și amintească ce a returnat funcția decorată și să returneze valoarea memorată # la apelurile ulterioare cu aceiași argumente. # # Se poate presupune că toți argumentele sunt hash-abile. # Folosiți doar biblioteca standard Python.
Ce puteți spune despre generatoarele asincrone?
Ce bibliotecă ați folosit pentru a interacționa cu Kafka și de ce ați ales-o în locul bibliotecii Kafka clasice?
Ce trebuie să fie cheile unui dicționar Python?
Cât de confortabil te simți lucrând cu PostgreSQL și SQL pur în loc de ORM, cum ar fi SQLAlchemy?
Cum influențează indexurile performanța bazei de date?
Îți face plăcere să te cufunzi în arhitectura de dezvoltare? Oferă un exemplu de lucru strâns cu arhitectura, dacă ai.
Ce tip de sortare este folosit în Python și care este complexitatea sa?
Ce format de muncă căutați: birou, hibrid sau de la distanță?
Se poate implementa un decorator pentru o metodă printr-o clasă și cum se face?
Povesti-ne despre cea mai complexă provocare tehnică sau de produs cu care te-ai confruntat: care a fost problema și cum ai rezolvat-o?
Care este perioada dvs. de preaviz înainte de demisie?
Cum măsoriți calitatea răspunsurilor, ce metrici specifice folosiți pentru a nu fi 'cu ochiul'
# # Se poate considera că toți argumentele sunt hashabile. # Folosiți doar biblioteca standard 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")
Cum se inversează lista [1,2,3] în [3,2,1]? Care este diferența dintre reverse() și slicing?
# asigurați-vă că end() este apelat în funcția g() # nu modificați funcțiile, cu excepția 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(): ...
Care sunt așteptările tale salariale?
Ce sunt metodele magice (metodele dunder)? De ce sunt numite magice?
De ce se poate înmulți un șir de caractere cu un număr, dar nu se poate adăuga un șir de caractere la un număr?