[Introduction à Python3 Jour 12] Chapitre 6 Objets et classes (6.3-6.15)

6.3 Héritage


>>> class car():
...     pass
... 
#Héritage de la classe parente. Entrez le nom de la classe parente entre ().
>>> class yugo(car):
...     pass
... 
>>> give_me_a_car=car()
>>> give_me_a_yugo=yugo()
>>> class car():
...     def exclaim(self):
...         print("I am a car!")
... 
>>> class yugo(car):
...     pass
... 
>>> give_me_a_car=car()
>>> give_me_a_yugo=yugo()
>>> give_me_a_car.exclaim()
I am a car!
>>> give_me_a_yugo.exclaim()
I am a car!

Remplacement de méthode


#définir la classe de voiture
>>> class car():
...     def exclaim(self):
...         print("I am a car")
... 
#Définir la classe yugo
>>> class yugo(car):
...     def exclaim(self):
...         print("I am a Yugo! Much like a Car,but more Yugo-ish")
... 
#Créer un objet
>>> give_me_a_car=car()
>>> give_me_a_yugo=yugo()
#(objet.Méthode)Appeler l'instance avec
>>> give_me_a_car.exclaim()
I am a car
>>> give_me_a_yugo.exclaim()
I am a Yugo! Much like a Car,but more Yugo-ish


>>> class Person():
...     def __init__(self,name):
...         self.name=name
... 
#Il hérite de la classe Person et prend les mêmes arguments que son parent, mais remplace la valeur de nom stockée dans l'objet.
>>> class MDPerson(Person):
...     def __init__(self,name):
...         self.name="Docter"+name
... 
>>> class JDPerson(Person):
...     def __init__(self,name):
...         self.name=name+"Esquire"
... 
#Création d'objets
>>> person=Person("Fudd")
>>> docter=MDPerson("Fudd")
>>> lowyer=JDPerson("Fudd")
>>> print(person.name)
Fudd
>>> print(docter.name)
DocterFudd
>>> print(lowyer.name)
FuddEsquire

6.5 Ajout de méthode


>>> class car():
...     def exclaim(self):
...         print("I am a car")
... 
>>> class yugo(car):
...     def exclaim(self):
...         print("I am a Yugo! Much like a Car,but more Yugo-ish")
#Nécessaire uniquement pour les classes enfants_a_push()Ajouter une méthode
...     def need_a_push(self):
...         print("A little help here?")
... 
>>> give_me_a_car=car()
>>> give_me_a_yugo=yugo()
>>> give_me_a_yugo.need_a_push()
A little help here?
#Les objets Car à usage général ne peuvent pas réagir.
>>> give_me_a_car.need_a_push()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'car' object has no attribute 'need_a_push'

6.6 Demande de soutien des parents par super


#Définition de la classe parent
>>> class Person():
...     def __init__(self,name):
...         self.name=name
... 

#Définition de classe enfant
#En classe enfant__init__()A définir est la classe parente__init__()J'essaye de remplacer une méthode et la version de la classe parente n'est pas appelée automatiquement. Par conséquent, pour appeler le champ de classe parent 0 John, il doit être appelé explicitement.
#Notez que nous ajoutons un argument email

#super()Extrait la définition de Person de la classe parent.
>>> class EmailPerson(Person):
...     def __init__(self,name,email):
...         super().__init__(name)
...         self.email=email
... 
#Créer un objet de la classe EmailPerson
>>> bob=EmailPerson("Bob Frapples","[email protected]")
>>> bob.name
'Bob Frapples'
>>> bob.email
'[email protected]'

--Utilisation de super () pour que Person fasse le même travail qu'un simple objet Person.

6.7 Self défense


#Trouvez la classe (voiture) de l'objet voiture.
#Exclamation de classe de voiture()Passez l'objet voiture comme argument auto à la méthode.

>>> car=car()
>>> car.exclaim()
I am a car

#Vous pouvez obtenir le même résultat que ci-dessus en passant l'objet car directement à la classe Car avec la méthode exclaim.
>>> Car.exclaim(car)
I am a car

6.8 Acquisition et définition des valeurs d'attribut par propriétés


#Caché comme attribut_Définissez une classe Duck qui n'a que des éléments avec le nom de valeur
>>> class Duck():
...     def __init__(self,input_name):
...         self.hidden_name=input_name
...     def get_name(self):
...         print("inside the getter")
...         return self.hidden_name
...     def set_name(self,input_name):
...         print("inside the setter")
...         self.hidden_name=input_name
#Deux méthodes sont définies comme setters et getters pour une propriété appelée name. Cela se produira lorsque vous vous référez au nom de l'objet Duck_name()La méthode sera appelée.
#Vous pouvez utiliser la propriété pour contrôler ce qui se passe lors de l'accès à un attribut.
...     name=property(get_name,set_name)
... 
>>> fowl=Duck("Howard")
>>> fowl.name
inside the getter
'Howard'
#Obtenez directement_name()Peut également être appelé
>>> fowl.get_name()
inside the getter
'Howard'
#Attribution d'une valeur aux jeux de propriétés de nom_La méthode de nom est appelée.
>>> fowl.name="Duffy"
inside the setter
>>> fowl.name
inside the getter
'Duffy'
#Ensemble direct_name()Peut également être appelé
>>> fowl.set_name("Duffy")
inside the setter
>>> fowl.name
inside the getter
'Duffy'

--Les propriétés peuvent être définies avec des décorateurs.


>>> class Duck():
...     def __init__(self,input_name):
...         self.hidden_name=input_name
#@En utilisant la propriété, il peut être implémenté sans utiliser le nom de l'attribut et il devient possible de faire référence à l'attribut.
...     @property
...     def name(self):
...         print("inside the getter")
...         return self.hidden_name
...     @name.setter
...     def name(self,input_name):
...         print("inside the setter")
...         self.hidden_name=input_name
... 
>>> fowl=Duck("Howard")
>>> fowl.name
inside the getter
'Howard'
>>> fowl.name="Donald"
inside the setter
>>> fowl.name
inside the getter
'Donald'

#La propriété peut également faire référence à la valeur calculée.
>>> class Circle():
...     def __init__(self,radius):
...         self.radius=radius
...     @property
...     def diameter(self):
...         return 2 * self.radius
... 
>>> c=Circle(5)
>>> c.radius
5
>>> c.diameter
10
#l'attribut radius peut être réécrit à tout moment
>>> c.radius=7
>>> c.diameter
14
#Si vous ne spécifiez pas le paramètre de propriété, vous ne pouvez pas réécrire la valeur de propriété de l'extérieur. (Pratique pour la lecture seule)
>>> c.diameter=20
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: can't set attribute

6.9 Modification des noms pour les attributs privés


>>> class Duck():
...     def __init__(self,input_name):
...         self.__name=input_name
...     @property
...     def name(self):
...         print("inside the getter")
...         return self.__name
...     @name.setter
...     def name(self,input_name):
...         print("inside the setter")
...         self.__name=input_name
... 
>>> fowl=Duck("Howard")
>>> fowl.name
inside the getter
'Howard'
>>> fowl.name="Donald"
inside the setter
>>> fowl.name
inside the getter
'Donald'
#__Inaccessible à l'attribut de nom
>>> fowl.__name
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Duck' object has no attribute '__name'
#Bague mang prénom
>>> fowl._Duck__name
'Donald'

6.10 Type de méthode


#self.count(Cela en fait un attribut de l'instance d'objet)Pas un.count(Attributs de classe)Notez qu'il fait référence à. des gamins()Dans la méthode cls.J'ai utilisé count, mais A.Cela peut être compté.
>>> class A():
...     count=0
...     def __init__(self):
...         A.count+=1
...     def exclaim(self):
...         print("I am an A!")
...     @classmethod
...     def kids(cls):
...         print("A has",cls.count,"little objects.")
... 
>>> e=A()
>>> b=A()
>>> w=A()
>>> A.kids()
A has 3 little objects.

#Définition de méthode statique
>>> class CoyoteWeapon():
...     @staticmethod
...     def commercial():
...         print("This CoyoteWeapon has been brought to you by Acme")
... 
#Il peut être exécuté sans créer d'objet à partir de la classe.
>>> CoyoteWeapon.commercial()
This CoyoteWeapon has been brought to you by Acme

6.11 Typage de canard


>>> class Quote():
...     def __init__(self,person,words):
...         self.person=person
...         self.words=words
...     def who(self):
...         return self.person
...     def says(self):
...         return self.words + "."
... 
#Puisque la méthode d'initialisation est la même que la classe parente__init__()La méthode n'est pas remplacée.
>>> class QuestionQuote(Quote):
...     def says(self):
...         return self.words + "?"
... 
>>> class ExclamationQuote(Quote):
...     def says(self):
...         return self.words + "!"
... 
>>> hunter=Quote("E","I")
>>> print(hunter.who(),"says:",hunter.says())
E says: I.
>>> hunted1=QuestionQuote("E","I")
>>> print(hunted1.who(),"says:",hunted1.says())
E says: I?
>>> hunted2=ExclamationQuote("E","I")
>>> print(hunted2.who(),"says:",hunted2.says())
E says: I!
#Python est qui(),says()Tout objet qui a une méthode peut être traité comme un objet avec une interface commune (sans héritage).
>>> class BBrook():
...     def who(self):
...         return "Brook"
...     def says(self):
...         return "Babble"
... 
>>> brook=BBrook()
>>> def who_says(obj):
...     print(obj.who(),"says",obj.says())
... 
>>> who_says(hunter)
E says I.
>>> who_says(hunted1)
E says I?
>>> who_says(hunted2)
E says I!
>>> who_says(brook)
Brook says Babble

6.12 Méthode spéciale

--__ init__ () initialise l'objet nouvellement créé à partir de la définition de classe avec les arguments passés.


>>> class Word():
...     def __init__(self,text):
...         self.text = text
...     def equals(self,word2):
...         return self.text.lower() == word2.text.lower()
... 
>>> first=Word("ha")
>>> second=Word("HA")
>>> third=Word("eh")
>>> first.equals(second)
True
>>> first.equals(third)
False

#equals()Méthode__eq__()Changez pour le nom spécial.
>>> class Word():
...     def __init__(self,text):
...         self.text = text
...     def __eq__(self,word2):
...         return self.text.lower() == word2.text.lower()
... 
>>> first=Word("ha")
>>> second=Word("HA")
>>> third=Word("eh")
>>> first==second
True
>>> first==third
False
>>> first=Word("ha")
>>> first
<__main__.Word object at 0x10ddeec50>
>>> print(first)
<__main__.Word object at 0x10ddeec50>
#Dans la classe Word__str__()Ou__repr__()Ajoutez une méthode pour rendre l'affichage plus facile à voir.
>>> class Word():
...     def __init__(self,text):
...         self.text = text
...     def __eq__(self,word2):
...         return self.text.lower() == word2.text.lower()
...     def __str__(self):
...         return self.text
...     def __repr__(self):
...         return "Word(" + self.text + ")"
... 
>>> first=Word("ha")
#__repr__()utilisation
>>> first
Word(ha)
#__str__()utilisation
>>> print(first)
ha

--Méthode spéciale de comparaison

Méthode sens
_qe_(x,y) x == y
_ne_(x,y) x != y
_lt_(x,y) x < y
_gt_(x,y) x > y
_le_(x,y) x <= y
_ge_(x,y) x >= y

--Méthode spéciale pour le calcul arithmétique

Méthode sens
_add_(x,y) x + y
_sub_(x,y) x - y
_mul_(x,y) x * y
_floordiv_(x,y) x // y
_truediv_(x,y) x / y
_mod_(x,y) x % y
_pow_(x,y) x ** y

--Autres méthodes spéciales

Méthode sens
_str_(x) str(x)
_repr_(x) repr(x)
_len_(x) len(x)

6.13 Composition


#bill(Kuchibashi)、tail(queue)Créez un objet et donnez-le à la nouvelle classe Duck.
>>> class Bill():
...     def __init__(self,description):
...         self.description=description
... 
>>> class Taill():
...     def __init__(self,length):
...         self.length=length
... 
>>> class Duck():
...     def __init__(self,bill,tail):
...         self.bill=bill
...         self.tail=tail
...     def about(self):
...         print("This duck has a",self.bill.description,"bill and a",self.tail.length,"tail")
... 
>>> tail=Taill("long")
>>> bill=Bill("wide orange")
>>> duck=Duck(bill,tail)
>>> duck.about()
This duck has a wide orange bill and a long tail

6.14 Quand dois-je utiliser des classes et des objets au lieu de modules?

6.14.1 Taple nommé


>>> from collections import namedtuple
>>> Duck=namedtuple("Duck","bill tail")
>>> duck=Duck("wide orange","long")
#Créer un taple nommé
>>> duck
Duck(bill='wide orange', tail='long')
#(.name)Vous pouvez accéder à la valeur avec.
>>> duck.bill
'wide orange'
>>> duck.tail
'long'

#Les taples nommés peuvent également être créés à partir d'un dictionnaire.
>>> parts={"bill":"Wide orange","tail":"long"}
#Canard en extrayant les clés et les valeurs du dictionnaire de pièces en convertissant les arguments du mot-clé en un dictionnaire()Passer comme argument à.
>>> duck2=Duck(**parts)
>>> duck2
Duck(bill='Wide orange', tail='long')

#Les taples nommés sont immuables, mais peuvent renvoyer un autre tapple nommé avec un ou plusieurs échanges de champ.
>>> duck3=duck2._replace(tail="M",bill="X")
>>> duck3
Duck(bill='X', tail='M')

#canard peut également être défini comme un dictionnaire.
>>> duck_dict={"bill":"A","tail":"I"}
>>> duck_dict
{'bill': 'A', 'tail': 'I'}
#Vous pouvez ajouter des champs au dictionnaire.
>>> duck_dict["color"]="green"
>>> duck_dict
{'bill': 'A', 'tail': 'I', 'color': 'green'}
#Ne peut pas être ajouté aux taples nommés.
>>> duck_dict.color="green"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'dict' object has no attribute 'color'

6.15 Examen de la mission

6-1 Créez une classe vide appelée Thing et affichez-la. Ensuite, créons un objet appelé exemple à partir de cette classe et affichons-le également. Les valeurs affichées sont-elles identiques ou différentes?


>>> class Thing():
...     pass
... 
>>> example=Thing()
>>> print(Thing)
<class '__main__.Thing'>
>>> print(example)
<__main__.Thing object at 0x10de692d0>

6-2 Créez un nouvel objet appelé Thing2 et attribuez la valeur "abc" à l'attribut de classe appelé letter pour afficher les lettres.


>>> class Thing2():
...     letters="abc"
... 
>>> print(Thing2.letters)
abc

6-3 Faisons une autre classe. Le nom est Thing3. Maintenant, affectons "xyz" à l'attribut d'instance (objet) appelé lettres et affichons les lettres.


>>> class Thing3():
...     def __init__(self):
...         self.letters="xyz"
... 
>>> something=Thing3()
>>> print(something.letters)
xyz

6-4 Créez une classe appelée Element avec des attributs d'instance de nom, symbole, numéro et créez un objet de cette classe avec les valeurs "Hydogen", "H", "1".


>>> class Element():
...     def __init__(self,name,symbol,number):
...         self.name=name
...         self.symbol=symbol
...         self.number=number
... 
>>> H=Element("Hydogen","H","1")

6-5 Créez un dictionnaire avec des paires clé / valeur "nom": "Hydrogène", "symbole": "H", "nombre": "1". Ensuite, utilisons ce dictionnaire pour créer un objet hydrogène de la classe Element.


>>> dictionary={"name":"Hydrogen","symbol":"H","number":"1"}
>>> hydrogen=Element(dictionary["name"],dictionary["symbol"],dictionary["number"])
>>> hydrogen.name
'Hydrogen'
>>> hydrogen.symbol
'H'
>>> hydrogen.number
'1'

#Le nom clé du dictionnaire est__init()__Puisqu'il correspond à l'argument de, l'objet peut être initialisé directement à partir du dictionnaire.
>>> hydrogen=Element(**dictionary)
>>> hydrogen.name
'Hydrogen'
>>> hydrogen.symbol
'H'
>>> hydrogen.number
'1'

6-6 Pour la classe Element, définissons une méthode appelée dump () qui affiche les valeurs des attributs de l'objet (nom, symbole, numéro). Créez un objet hydrogène à partir de cette nouvelle définition et utilisez dump () pour afficher ses attributs.


>>> class Element():
...     def __init__(self,name,symbol,number):
...         self.name=name
...         self.symbol=symbol
...         self.number=number
...     def dump(self):
...         print("name=%s,symbol=%s,number=%s"%(self.name,self.symbol,self.number))
... 
>>> hydrogen=Element("A","B","C")
>>> hydrogen.dump()
name=A,symbol=B,number=C

6-7 Appelons print (hydrogène). Ensuite, changez le nom de la méthode dump en str dans la définition de l'élément, créez un objet hydrogène sous la nouvelle définition et appelez à nouveau print (hydrogène).


>>> print(hydrogen)
<__main__.Element object at 0x10de9e510>
>>> class Element():
...     def __init__(self,name,symbol,number):
...         self.name=name
...         self.symbol=symbol
...         self.number=number
...     def __str__(self):
...         return ("name=%s,symbol=%s,number=%s"%(self.name,self.symbol,self.number))
... 
>>> hydrogen=Element("A","B","C")
#La fonction d'impression est pour l'objet__str__()Appelez la méthode pour obtenir la représentation sous forme de chaîne. Sans cela<__main__.Element object at 0x10de9e510>Renvoie une chaîne telle que.
>>> print(hydrogen)
name=A,symbol=B,number=C

6-8 Réécrivons Element et rendons privés le nom, le symbole et les attributs numériques. Et définissons un getter qui renvoie une valeur pour chacun.


>>> class Element():
...     def __init__(self,name,symbol,number):
...         self.__number=number
...         self.__symbol=symbol
...         self.__name=name
...     @property
...     def name(self):
...         return self.__name
...     @property
...     def symbol(self):
...         return self.__symbol
...     @property
...     def number(self):
...         return self.__number
... 
>>> hydrogen=Element("A","B","C")
>>> hydrogen.name
'A'
>>> hydrogen.symbol
'B'
>>> hydrogen.number
'C'


6-9 Définissons trois classes, Bear, Rabbit et Octothorpe, définissons la seule méthode, mange ().


>>> class Bear():
...     def eats(self):
...         return "berries"
... 
>>> class Rabbit():
...     def eats(self):
...         return "clover"
... 
>>> class Octothorse():
...     def eats(self):
...         return "campers"
... 
#La création d'objet s'appelle comme une fonction
>>> a=Bear()
>>> b=Rabbit()
>>> c=Octothorse()
>>> print(a.eats())
berries
>>> print(b.eats())
clover
>>> print(c.eats())
campers

6-10 Définissons les classes Laser, Claw, SmartPhone. Les trois classes ont do () comme seule méthode.


>>> class Laser():
...     def does(self):
...         return "disintegrate"
... 
>>> class Claw():
...     def does(self):
...         return "crush"
... 
>>> class SmartPhone():
...     def does(self):
...         return "ring"
... 
#Composition
>>> class Robot():
...     def __init__(self):
...         self.laser=Laser()
...         self.claw=Claw()
...         self.smartphone=SmartPhone()
...     def does(self):
...         return """I have many attachments:
... My laser,to %s.
... My claw,to %s.
... My smartphone,to %s.""" %(
...     self.laser.does(),
...     self.claw.does(),
...     self.smartphone.does())
... 
>>> ro=Robot()
>>> print(ro.does())
I have many attachments:
My laser,to disintegrate.
My claw,to crush.
My smartphone,to ring.
>>> 

Impressions

Je ne pouvais pas comprendre les setters et les getters à partir des livres seuls, mais je pouvais les découvrir et les comprendre. J'ai senti que les classes et les objets étaient des unités importantes, j'ai donc mis beaucoup de temps à les comprendre.

Faisons de notre mieux à partir de demain.

Les références

"Introduction à Python3 par Bill Lubanovic (publié par O'Reilly Japon)"

Recommended Posts

[Introduction à Python3 Jour 12] Chapitre 6 Objets et classes (6.3-6.15)
[Introduction à Python3 Jour 11] Chapitre 6 Objets et classes (6.1-6.2)
[Introduction à Python3, jour 22] Chapitre 11 Traitement parallèle et mise en réseau (11.1 à 11.3)
[Introduction à Python3 Jour 1] Programmation et Python
[Introduction à Python3 Jour 13] Chapitre 7 Chaînes de caractères (7.1-7.1.1.1)
[Introduction à Python3 Jour 14] Chapitre 7 Chaînes de caractères (7.1.1.1 à 7.1.1.4)
[Introduction à Python3 Jour 15] Chapitre 7 Chaînes de caractères (7.1.2-7.1.2.2)
[Introduction à Python3 Day 21] Chapitre 10 Système (10.1 à 10.5)
[Introduction à Python3, jour 17] Chapitre 8 Destinations de données (8.1-8.2.5)
[Introduction à Python3, jour 17] Chapitre 8 Destinations de données (8.3-8.3.6.1)
[Introduction à Python3 Jour 19] Chapitre 8 Destinations de données (8.4-8.5)
[Introduction à Python3 Day 18] Chapitre 8 Destinations de données (8.3.6.2 à 8.3.6.3)
[Introduction à Python3, Jour 23] Chapitre 12 Devenir un Paisonista (12.1 à 12.6)
[Introduction à Python3 Jour 20] Chapitre 9 Démêler le Web (9.1-9.4)
À propos des objets et des classes Python
[Introduction à Python3 Jour 8] Chapitre 4 Py Skin: Structure du code (4.1-4.13)
[Introduction à Python3 Jour 3] Chapitre 2 Composants Py: valeurs numériques, chaînes de caractères, variables (2.2 à 2.3.6)
[Introduction to Data Scientists] Bases de Python ♬ Fonctions et classes
[Introduction à Python3 Jour 2] Chapitre 2 Composants Py: valeurs numériques, chaînes de caractères, variables (2.1)
[Introduction à Python3 Jour 4] Chapitre 2 Composants Py: valeurs numériques, chaînes de caractères, variables (2.3.7 à 2.4)
Lier des méthodes aux classes et instances Python
Introduction à la vérification de l'efficacité Chapitre 1 écrit en Python
[Introduction à Python3 Jour 7] Chapitre 3 Outils Py: Listes, Taples, Dictionnaires, Ensembles (3.3-3.8)
[Introduction à Python3 Jour 5] Chapitre 3 Outils Py: listes, taples, dictionnaires, ensembles (3.1-3.2.6)
[Introduction à Python3 Jour 10] Chapitre 5 Boîte cosmétique de Py: modules, packages, programmes (5.4-5.7)
[Introduction à Python3 Jour 9] Chapitre 5 Boîte cosmétique de Py: modules, packages, programmes (5.1-5.4)
[Introduction à Python3 Jour 6] Chapitre 3 Liste des outils Py, tapple, dictionnaire, set (3.2.7-3.2.19)
Introduction à la vérification de l'efficacité Chapitre 3 écrit en Python
Introduction au langage Python
Introduction à OpenCV (python) - (2)
[Introduction à l'application Udemy Python3 +] 64. Espace de noms et portée
[Hikari-Python] Chapitre 09-02 Classes (Création et instanciation de classes)
[Hikari-Python] Chapitre 09-01 Classes (Bases des objets)
Introduction à la vérification de l'efficacité Chapitre 2 écrit en Python
[Introduction à l'application Udemy Python3 +] 35. Opérateurs de comparaison et opérateurs logiques
Le mémo Python le plus simple au Japon (classes et objets)
[Chapitre 5] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 3] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 2] Introduction à Python avec 100 coups de traitement du langage
[Introduction à Udemy Python3 + Application] 68. Instruction d'importation et AS
[Livre technique] Introduction à l'analyse de données avec Python -1 Chapitre Introduction-
[Chapitre 4] Introduction à Python avec 100 coups de traitement du langage
Introduction à Python Django (2) Win
À propos des variables et des objets Python
Introduction à la communication série [Python]
[Introduction à Python] <liste> [modifier le 22/02/2020]
Introduction à Python (version Python APG4b)
Une introduction à la programmation Python
Introduction à Python pour, pendant
[Introduction à l'application Udemy Python3 +] 42. pour instruction, instruction break et instruction continue
[Introduction à l'application Udemy Python3 +] 39. instruction while, instruction continue et instruction break
[Introduction à l'application Udemy Python3 +] 36. Utilisation de In et Not
[Introduction à Udemy Python3 + Application] 50. Arguments de position, arguments de mots-clés et arguments par défaut
Introduction à la vérification des effets Rédaction des chapitres 4 et 5 en Python
[Introduction à Python] Combinaison des données Nikkei Average et NY Dow CSV
[Présentation de l'application Udemy Python3 +] 58. Lambda
[Présentation de l'application Udemy Python3 +] 31. Commentaire
objet perl et classe python partie 2.
ABC pour les classes abstraites Python et la saisie de canard
Introduction à la bibliothèque de calcul numérique Python NumPy
Entraine toi! !! Introduction au type Python (conseils de type)