Session du 16 mars 2023 à 19h00

Programmation Orientée Objet (POO)

Deviens membre Premium magic_button

Cette session de mentorat est réservée aux membres Premium. Rejoignez-nous pour accéder à toutes les rediffusions des sessions de mentorat !

Premium

  • check +100h de formations
  • check +180 exercices de code
  • check +100h de mentorats en rediffusion
  • check 20 projets
  • check Mentorats groupés hebdomadaires
  • check Support individuel avec nos mentors
Découvrir les formules
Voir le détail des fonctionnalités

Maîtriser *args et **kwargs en Python

Explication complète des args et kwargs avec les principes d'unpacking et d'héritage et dans quelles situations on peut être amené à utiliser ces concepts.

# Le concept d'unpacking
def foo(r, g, b):
    print(r, g, b)

rgb = (128, 255, 255)
foo(*rgb)
rgb = {"r": 128, "g": 255, "a": 255}
foo(**rgb)


# Exemple avec l'héritage, on utilise args et kwargs pour passer les arguments à la fonction save qui est surchargée.
class BaseModel:
    def save(self, force_insert=True, update=False, using=False):
        if force_insert:
            print("On sauvegarde l'objet dans la base de données")
        else:
            print("On vérifie que l'objet peut être sauvegardé")
            print("On sauvegarde l'objet dans la base de données")

class BlogPost(BaseModel):
    def notify(self):
        print("Un article a été publié")

    def save(self, *args, **kwargs):
        super().save(*args, **kwargs)
        self.notify()


article = BlogPost()
article.save(force_insert=False, update=True)


# Exemple avec les templates de mail de Sendinblue

"""
# Template nouvelle réponse mentorat
Salut {params.user} !
{params.from_user} a répondu à ta question


# Template nouvel article de blog
Un nouvel article {params.title} a été publié :
{params.description}
"""

# Fonction pour envoyer un mail, qui passe dans data tous les kwargs envoyé à la fonction
def send_mail(template: int, **kwargs):
    requests.post("sendinblue.com/api/send", data=kwargs)

# Nouvel article de blog publié
send_mail(template=120, description="10 projets Django", title="Django")

# Nouvelle réponse
send_mail(template=119, from_user="Gab", user="Thib")
00:00:24

Explication des changements et améliorations

00:02:48

Introduction aux args et kwargs

00:04:22

Exemples et théories sur les args et kwargs

00:09:05

Différence entre arguments nommés et non nommés

00:10:10

Unpacking en Python

00:16:01

Utilisation pratique du unpacking

00:23:24

Surcharge de méthode et héritage en Django

00:28:00

Exemple pratique avec Django et SendinBlue

01:02:32

FAQs et clarifications sur les args et kwargs

01:11:14

Impact des IA sur le travail des développeurs

Bravo, tu es prêt à passer à la suite

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.