Python
obj = {True: 1, 1: 2, 1.0: 3, "1": 4} print(obj) # {True: 3, "1": 4}
# Γράψτε κώδικα για τη λειτουργία cache. Είναι ένας διακοσμητής που πρέπει # να θυμάται τι επέστρεψε η διακοσμημένη συνάρτηση και να επιστρέφει την αποθηκευμένη # τιμή σε επαναληπτικές κλήσεις με τα ίδια επιχειρήματα. # # Μπορεί να υποτεθεί ότι όλα τα επιχειρήματα είναι hashable. # Χρησιμοποιήστε μόνο τη βιβλιοθήκη standard της Python.
Τι μπορείτε να πείτε για τους ασύγχρονους γεννήτριες;
Ποια βιβλιοθήκη χρησιμοποιήσατε για να αλληλεπιδράσετε με το Kafka και γιατί την επιλέξατε αντί της κλασικής βιβλιοθήκης Kafka;
Πώς πρέπει να είναι τα κλειδιά ενός λεξικού Python;
Πόσο άνετα αισθάνεστε να εργάζεστε με PostgreSQL και καθαρό SQL αντί για ORM, όπως το SQLAlchemy;
Πώς επηρεάζουν οι δείκτες την απόδοση της βάσης δεδομένων;
Σε ενδιαφέρει να εμβαθύνεις στην αρχιτεκτονική ανάπτυξης; Δώσε ένα παράδειγμα στενής εργασίας με την αρχιτεκτονική, αν έχεις.
Ποια ταξινόμηση χρησιμοποιείται στην Python και ποια είναι η πολυπλοκότητά της;
Ποιο μορφότυπο εργασίας αναζητάτε: γραφείο, υβριδικό ή απομακρυσμένο;
Μπορεί να υλοποιηθεί ένας διακοσμητής για μια μέθοδο μέσω μιας κλάσης και πώς;
Πείτε μας για την πιο πολύπλοκη τεχνική ή προϊόντική πρόκληση που αντιμετωπίσατε: ποιο ήταν το πρόβλημα και πώς το λύσατε;
Ποια είναι η προθεσμία ειδοποίησης σας πριν από την απόλυση;
Πώς μετράτε την ποιότητα των απαντήσεων, ποιες συγκεκριμένες μετρήσεις χρησιμοποιείτε ώστε να μην είναι 'με το μάτι';
# # Μπορεί να θεωρηθεί ότι όλα τα ορίσματα είναι hashable. # Χρησιμοποιήστε μόνο τη βασική βιβλιοθήκη 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")
Πώς να αναστρέψετε τη λίστα [1,2,3] σε [3,2,1]; Ποια είναι η διαφορά μεταξύ reverse() και slicing;
# διασφαλίστε την κλήση της end() στη λειτουργία g() # μην τροποποιείτε τις λειτουργίες, εκτός από 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(): ...
Ποιες είναι οι μισθολογικές σου προσδοκίες;
Τι είναι οι μαγικές μέθοδοι (dunder methods); Γιατί ονομάζονται μαγικές;
Γιατί μπορούμε να πολλαπλασιάσουμε μια συμβολοσειρά με έναν αριθμό, αλλά όχι να προσθέσουμε μια συμβολοσειρά με έναν αριθμό;