Partons de ce code Python :
Code : Tout sélectionner
from random import randint
max=int(raw_input("Quel est le maximum ? "))
n=int(raw_input("Combien de tirages ?"))
tab=range(1,max+1)
print(tab)
tirage=[]
for i in range(n):
carte=randint(1,max)
tirage.append(tab[carte-1])
tab[carte-1]=tab[max-1]
max=max-1
print("Le tirage est ",tirage)
Code : Tout sélectionner
tirage.append(tab[carte-1])
Tout d'abord, malgré mes sollicitations répétées auprès de plusieurs personnes censées être particulièrement compétentes, j'ai eu énormément de mal à obtenir une définition à mes yeux valable de ce qu'est un objet au sens informatique du mot. J'ai même eu des réponses du genre : « inutile de savoir ce que c'est vraiment, ça s'utilise, c'est tout » .
Si j'ai bien suivi, un objet serait un « truc / machin / bidule » où cohabitent sous une même appellation des données et des procédures/fonctions permettant de les traiter.
Sur le code Python ci-dessus, à tirage, en tant que représentant (il paraît que, dans un délicieux anglicisme, on dit « instance ») de l'objet liste, est associé tirage.append(..) qui permet d'accrocher un élément supplémentaire à la liste tirage.
Bon, alors je le dis de manière abrupte : je ne vois pas ce que ça apporte .
Dans mon cerveau de dinosaure de la programmation élevé au TurboPascal, mettre les données et les outils de traitement dans les mêmes boîtes relève de la confusion des genres. Je trouve plus clair d'avoir des variables contenant les données, et des outils universels pour les traiter.
Pour en revenir à mon tirage, je trouverais plus clair qu'il y ait une fonction/procédure « absolue » appelée append à laquelle on passerait la variable tirage en paramètre, selon une syntaxe qui pourrait ressembler à
Code : Tout sélectionner
append(tirage,tab[carte-1])
Code : Tout sélectionner
tirage=append(tirage,tab[carte-1])
Code : Tout sélectionner
tirage=tirage + tab[carte-1]
Bref : la POO, j'ai beau réfléchir au concept, ça coince. Les trolls sont lâchés :rifle: .