Python est un langage INCONTOURNABLE que tu sois Développeur/Data Scientist/Data Analyst/DevOPS.
Après avoir passé moi-même des tas d'entretiens je te donne mon TOP 10 des questions les + fréquemment posées en entretien sur Python (niveau avancé)
THREAD ⬇️
Après avoir passé moi-même des tas d'entretiens je te donne mon TOP 10 des questions les + fréquemment posées en entretien sur Python (niveau avancé)
THREAD ⬇️
1. Expliquer le fonctionnement du garbage collector en Python
En python, les objets crées en mémoire ont tous un attribut permettant de connaitre le nombre de variables les référençant.
Lorsque ce nombre atteint 0, l'objet est supprimé automatiquement par le garbage collector
En python, les objets crées en mémoire ont tous un attribut permettant de connaitre le nombre de variables les référençant.
Lorsque ce nombre atteint 0, l'objet est supprimé automatiquement par le garbage collector
Python a également un système de générations pour gérer les références cycliques.
2. Quelle est la différence entre une liste et un tuple ?
Liste = mutable
Tuple = immutable
- On peut ajouter/modifier/supprimer les éléments d'une liste mais pas d'un tuple.
- Les listes sont légèrement supérieures en terme de performance
Liste = mutable
Tuple = immutable
- On peut ajouter/modifier/supprimer les éléments d'une liste mais pas d'un tuple.
- Les listes sont légèrement supérieures en terme de performance
3. Quelle est la différence entre un module et un package ?
Module = fichier dans lequel on écrit du code Python
Package = répertoire contenant un ou plusieurs modules
Module = fichier dans lequel on écrit du code Python
Package = répertoire contenant un ou plusieurs modules
4. Qu'est ce qu'un namespace ?
Namespace: dictionnaire répertoriant l'ensemble des objets (variables, méthodes, etc..) avec comme clé le nom permettant d'identifier l'objet et comme valeur l'objet lui-même.
La fonction dir() permettant d'afficher le namespace courant
Namespace: dictionnaire répertoriant l'ensemble des objets (variables, méthodes, etc..) avec comme clé le nom permettant d'identifier l'objet et comme valeur l'objet lui-même.
La fonction dir() permettant d'afficher le namespace courant
Il existe 4 niveaux de namespace:
- Local à une fonction
- Fonction englobante
- Module
- Built-in
- Local à une fonction
- Fonction englobante
- Module
- Built-in
5. Qu'est-ce que le GIL ? Quelles sont ses implications ?
GIL = Global interpreter lock
Verrou empêchant plusieurs threads d'agir de façon parallèle dans l’exécution d'un programme.
=> Impossible d'assigner un cœur de sa machine à un thread pour de la programmation parallèle
GIL = Global interpreter lock
Verrou empêchant plusieurs threads d'agir de façon parallèle dans l’exécution d'un programme.
=> Impossible d'assigner un cœur de sa machine à un thread pour de la programmation parallèle
Mais peut être contourné en faisant du multi-processing
6. Qu'est ce qu'un décorator ?
Decorator = fonction qui retourne une autre fonction. Permet d'ajouter de nouvelles fonctionnalités à une fonction existante (ex: calculer son temps d'execution, ajouter des logs, rate limiter)
Voir peps.python.org
Decorator = fonction qui retourne une autre fonction. Permet d'ajouter de nouvelles fonctionnalités à une fonction existante (ex: calculer son temps d'execution, ajouter des logs, rate limiter)
Voir peps.python.org
7. Quelle est la différence entre *args et **kwargs ?
*args: utilisé comme paramètre d'une fonction afin de pouvoir y passer un nombre variable d'arguments.
**kwargs: utilisé comme paramètre d'une fonction afin de pouvoir y passer un nombre variable de keywords arguments.
*args: utilisé comme paramètre d'une fonction afin de pouvoir y passer un nombre variable d'arguments.
**kwargs: utilisé comme paramètre d'une fonction afin de pouvoir y passer un nombre variable de keywords arguments.
Deep copy: construit un nouvel objet composé puis, récursivement, insère dans l'objet composé des copies des objets trouvés dans l'objet original.
Voir: docs.python.org
Voir: docs.python.org
9. Quelle est la différence entre un itérateur et un générateur ?
Iterateur: objet implémentant les fonctions __next__() et __iter__()
Generateur: Toute fonction utilisant le mot clé "yield". Permet de créer facilement des instances d'itérateurs.
Un générateur est un itérateur.
Iterateur: objet implémentant les fonctions __next__() et __iter__()
Generateur: Toute fonction utilisant le mot clé "yield". Permet de créer facilement des instances d'itérateurs.
Un générateur est un itérateur.
N'oublie pas de retweet + like ce thread pour que ça puisse aider le maximum de personnes.
Follow moi: @CoderNoLimit pour ne rien rater.
Si tu as la moindre question, mets-la en commentaire ou contacte-moi directement en DM 😃
Follow moi: @CoderNoLimit pour ne rien rater.
Si tu as la moindre question, mets-la en commentaire ou contacte-moi directement en DM 😃
Si la programmation t’intéresse, abonne-toi à ma chaine. Il y a le meilleur contenu du Youtube Game francophone sur la programmation et je compte publier du très lourd:
youtube.com
youtube.com
جاري تحميل الاقتراحات...