Comments on: Le guide ultime et définitif sur la programmation orientée objet en Python à l’usage des débutants qui sont rassurés par les textes détaillés qui prennent le temps de tout expliquer. Partie 3. http://sametmax.com/le-guide-ultime-et-definitif-sur-la-programmation-orientee-objet-en-python-a-lusage-des-debutants-qui-sont-rassures-par-les-textes-detailles-qui-prennent-le-temps-de-tout-expliquer-partie-3/ Du code, du cul Sat, 07 Nov 2015 11:08:18 +0000 hourly 1 http://wordpress.org/?v=4.1 By: Sam http://sametmax.com/le-guide-ultime-et-definitif-sur-la-programmation-orientee-objet-en-python-a-lusage-des-debutants-qui-sont-rassures-par-les-textes-detailles-qui-prennent-le-temps-de-tout-expliquer-partie-3/#comment-164506 Fri, 18 Sep 2015 17:10:23 +0000 http://sametmax.com/?p=4292#comment-164506 Il va falloir que je rajoute le mécanisme de recherche.

Quand tu fais obj.attr, ça va chercher obj.attr, et si ça ne le trouve pas, ça va chercher Class.attr, puis si ça ne le trouve pas, ça va chercher celui de la classe parente, etc.

Donc si tu set ton attribut (obj.attr = truc), il existe sur l’objet, et c’est ce qui est retourné. Si tu ne le set pas, alors c’est celui de la classe qui est utilisé, et c’est pourquoi tu vois la modification sembler se “propager”.

]]>
By: Benji http://sametmax.com/le-guide-ultime-et-definitif-sur-la-programmation-orientee-objet-en-python-a-lusage-des-debutants-qui-sont-rassures-par-les-textes-detailles-qui-prennent-le-temps-de-tout-expliquer-partie-3/#comment-164427 Wed, 16 Sep 2015 12:44:25 +0000 http://sametmax.com/?p=4292#comment-164427

Si je modifie l’attribut au niveau de la classe, la classe et toutes les instances crées après ont la nouvelle valeur.

Bizarre, j’ai ça :

>>> class HobJay:
...  classtribut = 'et un'>>> 
...
 
      >>> h1 = HobJay()
      >>> h2 = HobJay()
      >>> h3 = HobJay()
      >>> h1.classtribut
      'et un'
      >>> h2.classtribut
      'et un'
      >>> h3.classtribut
      'et un'
      >>> h2.classtribut = 'et deux'
      >>> h2.classtribut
      'et deux'
      >>> HobJay.classtribut = 'et trois zero !'
      >>> h1.classtribut
      'et trois zero !'
      >>> h2.classtribut
      'et deux'
      >>> h3.classtribut
      'et trois zero !'
      >>> import sys
      >>> print(sys.version)
      3.4.3 (default, Mar 25 2015, 17:13:50)
 
      [GCC 4.9.2 20150304 (prerelease)]

On dirait plutôt que changer l’attribut de classe change l’attribut de toutes les instances, sauf celles dont l’attribut a été changée avant. Comme si l’attribut de classe était “écrasé” par un attribut d’instance chez h2.

Ou alors c’est un comportement qui change avec les versions ?

]]>
By: Sam http://sametmax.com/le-guide-ultime-et-definitif-sur-la-programmation-orientee-objet-en-python-a-lusage-des-debutants-qui-sont-rassures-par-les-textes-detailles-qui-prennent-le-temps-de-tout-expliquer-partie-3/#comment-163957 Thu, 20 Aug 2015 16:59:11 +0000 http://sametmax.com/?p=4292#comment-163957

As-tu un conseil qui peut aider à réfléchir objet ?

Réfléchir objet le moins possible. On utilise les objets quand on veut créer une API particulière ou quand on a un état auquel on fait référence dans de nombreuses fonctions qu’on transforme donc en méthode. Pour le reste, pas besoin d’objets.

Autre question, un peu plus technique, les attributs de classes au niveau de la classe se mettent-ils à jour si 2 objets sont dans des threads différents ?

Oui les espaces mémoires sont partagé entre les threads, pour avoir des variables non partagées, il faut utilise des thread locals variables ou des queues.

]]>
By: John http://sametmax.com/le-guide-ultime-et-definitif-sur-la-programmation-orientee-objet-en-python-a-lusage-des-debutants-qui-sont-rassures-par-les-textes-detailles-qui-prennent-le-temps-de-tout-expliquer-partie-3/#comment-163906 Tue, 18 Aug 2015 11:50:23 +0000 http://sametmax.com/?p=4292#comment-163906 Hello et bravo pour ce tuto, j’en suis à ma seconde lecture.

Je maitrise bien les notions des classes Python, mon grand défaut est de vouloir (insconciemment) créer des classes outils pour y fourrer un peu tout ce qui a un rapport (donc finalement beaucoup de méthodes).

J’essaie donc de sortir de mon habitude bizarre de tout ranger, et d’utiliser un peu plus les objets et les comportements naturels qui y sont liés, et après plusieurs années de dev procédural ce n’est pas toujours simple (surtout sur la partie intéraction entre les classes, j’hésite souvent entre la dérivation etc…)

As-tu un conseil qui peut aider à réfléchir objet ?

Autre question, un peu plus technique, les attributs de classes au niveau de la classe se mettent-ils à jour si 2 objets sont dans des threads différents ?

]]>
By: sensini42 http://sametmax.com/le-guide-ultime-et-definitif-sur-la-programmation-orientee-objet-en-python-a-lusage-des-debutants-qui-sont-rassures-par-les-textes-detailles-qui-prennent-le-temps-de-tout-expliquer-partie-3/#comment-106670 Tue, 05 Aug 2014 11:51:39 +0000 http://sametmax.com/?p=4292#comment-106670 ce qu’on a pas vu : on n‘a ?
toutes les instances crées : créées
ça à l’air : ça a

écrite toute en majuscule : tout en majuscule (voire tout en lettres capitales, majuscule = 1e lettre du mot toussa)

(object) là haut là: balise code à object + là-haut avec trait d’union

Très clair sinon :)

]]>
By: Sam http://sametmax.com/le-guide-ultime-et-definitif-sur-la-programmation-orientee-objet-en-python-a-lusage-des-debutants-qui-sont-rassures-par-les-textes-detailles-qui-prennent-le-temps-de-tout-expliquer-partie-3/#comment-18857 Thu, 23 Jan 2014 09:24:59 +0000 http://sametmax.com/?p=4292#comment-18857 C’est corrigé mon amour.

]]>
By: Réchèr http://sametmax.com/le-guide-ultime-et-definitif-sur-la-programmation-orientee-objet-en-python-a-lusage-des-debutants-qui-sont-rassures-par-les-textes-detailles-qui-prennent-le-temps-de-tout-expliquer-partie-3/#comment-18853 Thu, 23 Jan 2014 09:01:45 +0000 http://sametmax.com/?p=4292#comment-18853 Ouais, mais dans True Lies, Schwarzy bute un crocodile en le traitant de “sac à main”, ce que Lhermitte ne fait pas. C’était donc un remake qui valait le coup.

Quelques petites corrections :

“public static virtuel neconceptuel
C’est quoi ce “neconceptuel” ? C’est un vrai-mot clé, ou c’est une faute de frappe au mot “neoconceptuel” ?

Y’a dû y avoir confusion dans la lolisation du code. Les instances qui s’appellent “etranger_qui_vole_le_travail_des_francais” devraient être renommées en “flim_pas_sur_le_cyclimse“.
À remplacer à deux endroits.

]]>
By: foxmask http://sametmax.com/le-guide-ultime-et-definitif-sur-la-programmation-orientee-objet-en-python-a-lusage-des-debutants-qui-sont-rassures-par-les-textes-detailles-qui-prennent-le-temps-de-tout-expliquer-partie-3/#comment-5901 Sun, 03 Feb 2013 19:41:32 +0000 http://sametmax.com/?p=4292#comment-5901 Ok ;) aime bien mettre le doigt à des endroits comme ça ;)

]]>
By: Sam http://sametmax.com/le-guide-ultime-et-definitif-sur-la-programmation-orientee-objet-en-python-a-lusage-des-debutants-qui-sont-rassures-par-les-textes-detailles-qui-prennent-le-temps-de-tout-expliquer-partie-3/#comment-5897 Sun, 03 Feb 2013 16:32:34 +0000 http://sametmax.com/?p=4292#comment-5897 Aucune idée.

]]>
By: foxmask http://sametmax.com/le-guide-ultime-et-definitif-sur-la-programmation-orientee-objet-en-python-a-lusage-des-debutants-qui-sont-rassures-par-les-textes-detailles-qui-prennent-le-temps-de-tout-expliquer-partie-3/#comment-5895 Sun, 03 Feb 2013 16:06:32 +0000 http://sametmax.com/?p=4292#comment-5895 Alors si c’est si chiant pourquoi le laisser possible en python ?

]]>