Cours programmation
Par Ramy • 14 Novembre 2017 • 2 763 Mots (12 Pages) • 701 Vues
...
- Pour capturer tous les paramètres nommés non précisés dans un dictionnaire, il faut mettre deux étoiles ** avant le nom du paramètre
- def fonction_inconnue(*en_liste, **en_dictionnaire): Ainsi, pour avoir une fonction qui accepte n'importe quel type de paramètres, nommés ou non, dans n'importe quel ordre, dans n'importe quelle quantité, il faut la déclarer de cette manière
- os.chdir('chemin') pour changer le repertoir de travail courant
- os.getcwd() pour connaître le repertoir de travail courant
- fichier = open('chemin', 'lettre') pour ouvrir un fichier avec le chemin absolu ou relatif. La lettre défini le mode d'ouverture du fichier : 'r' (mode lecture), 'w' (mode écriture. Écrase l'ancien texte. Si le fichier n'existe pas, il est créé), 'a' (mode ajout. Écrit à la fin du texte précédent sans l'écraser. Si le fichier n'existe pas, il est créé), 'b' (mode binaire)
- fichier.close() pour fermer le fichier
- fichier.read() pour renvoyer l'integralité du fichier
- fichier.write('texte à écrire dans le fichier') pour écrire dans le fichier ouvert au préalable en mode d'écriture. Cette méthode renvoie le nombre de charactere qui ont étés écris dans le fichier. Cette méthode n'accepte que des chaines de charactere
- with open(fichier, méthode d'ouverture) as variable: pour etre sûr que le fichier se fermera bien à la fin du bloc
- fichier.closed pour vérifier si le fichier est fermé. Renvoie True si le fichier est fermé
- le module « pickle » permet de pouvoir stocker des objets dans un fichier
- myPickler = pickle.Pickler(fichier) pour créer un pickler. À executer dans un bloc with de préference. D'abord importer le module 'pickle'. Ouvrir le fichier en mode 'wb' (ecriture binaire)
- myPickler.dump(objet) pour enregistrer l'objet dans le fichier
- myDepickler = pickle.Unpickler(fichier) pour créer un Unpickler. À faire dans un bloc 'with' et ouvrir le fichier en mode 'rb'
- recupere = myDepickler.load() pour récupérer les objets du fichier
- global var à mettre au début d'une fonction pour l'autoriser à modifier 'var' même si elle n'est pas déclarer directement dans la fonction. C'est une variable globale. La variable doit donc être déclarée dans le corps du programme (pas dans une fonction)
- class NomDeLaClass: pour définir une nouvelle classe
- def __init__(self, parametres): pour définir un constructeur
- self.parametre = parametre → à mettre dans la fonction du constructeur
- def nomMethode(parametres): pour définir une méthode. C'est une méthode uniquement si c'est dans une class
- self sert pour travailler dans une méthode de l'objet, sur l'objet lui-même
- nomPropriete = property(_parametres) → pour définir une propriété d'objet. Property accepte 4 parametres, la méthode donnant accès à l'attribut, celle permettant de le modifier, celle appelée quand on supprime l'attribut et celle appelée quand on demande de l'aide sur l'attribut. Tous ces parametres sont optionels mais il en faut au moins un, bien entendu. Selon la convention, les méthodes que l'on donne en parametres a property doivent commencer par «_» ainsi que l'attribut qui est au centre de ces méthodes. Par contre on ne met pas de «_» avant le nom de la propritée dans nomPropriete = property(_parametres)
- En python, une méthode spéciale voit son nom entouré de part et d'autre par des signes 'souligné' ('_')
- La méthode spéciale '__repr__' sert à modifier ce qui est renvoyer quand on entre directement le nom de la classe dans l'interpreteur ou dans print(). Elle ne prend en parametre que 'self' et renvoie une chaine de caracteres
- la méthode spéciale '__str__' fait la même chose que '__repr__' mais spécifiquement pour print(). Si il n'y a pas de méthode spéciale '__str__' définie, la méthode spéciale '__repr__' sera appelée par défaut
- la méthode spéciale '__getattr__' permet de faire quelque chose (par exemple afficher un message d'erreur ou d'alerte) si l'attribut appelé n'existe pas dans la class où on l'a appelé. Cette méthode spéciale peut servir de sécurité pour éviter qu'un programme plante si l'attribut n'existe pas
- la méthode spéciale '__setattr__' permet de déclencher une action quand un attribut est modifié.!!!!!!!!!!!ATTENTION!!!!!!!!!!!!!! contrairement à beaucoup de méthodes, celle ci doit s'écrire : 'object.__setattr__(self, nomAttr, valeurAttr)' par exemple mais le object. au début est important et il ne faut pas mettre de deux points (':') à la fin
- la méthode spéciale '__delattr__' pour faire quelque chose quand on veut supprimer un attribut
- méthodes de conteneur '__getitem__', '__setitem__' et '__delitem__' pour respectivement lire, modifier et supprimer un objet conteneur ou ce qu'il contient. Pour les class qui se comportent comme un objet conteneur
- méthode de conteneur '__contains__', à définir si on veut utiliser le mot clé 'in' dans notre class. Elle prend en parametres self et l'objet qui nous interresse. Elle doit renvoyer True si l'objet existe et False si il n'existe pas
- méthode de conteneur '__len__' pour trouver la taille d'un conteneur. Ne prend aucun parametre et renvoie la taille de l'objet sous la forme d'un entier
- méthode spéciale '__add__' pour permettre d'utiliser l'opérateur '+'
- méthodes spéciales '__sub__' pour le '-'. '__mul__' pour le '*'. '__truediv__' pour le '/'. '__floordiv__' pour le '//'. '__mod__' pour le '%'. '__pow__'
...