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 6. 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-6/ Deux développeurs en vadrouille qui se sortent les doigts du code Wed, 05 Feb 2014 12:15:31 +0000 hourly 1 http://wordpress.org/?v=3.3.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-6/#comment-19202 Sam Fri, 31 Jan 2014 14:56:57 +0000 http://sametmax.com/?p=5136#comment-19202 Pour time.sleep, c'est tout simplement que __del__ peut ne pas être appelé du tout si la VM se ferme avant le passage du GC. Donc je met un slip pour éviter les tâches. Pour l'unicode, c'est une connerie de ma part, je retire. Pour time.sleep, c’est tout simplement que __del__ peut ne pas être appelé du tout si la VM se ferme avant le passage du GC. Donc je met un slip pour éviter les tâches.

Pour l’unicode, c’est une connerie de ma part, je retire.

]]>
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-6/#comment-19194 Réchèr Fri, 31 Jan 2014 12:54:41 +0000 http://sametmax.com/?p=5136#comment-19194 Putaaaaain de commentaires Wordpress !! Dans le bloc de code du commentaire précédent, remplacer les "#" qui sont tout seul sur une ligne par le gloubiboulga correspondant. Pour le premier dièse : <pre lang="python"># __main__.CC object at 0x01DA34B0</pre> Pour les deux dièses suivants : <pre lang="python"># __main__.DD object at 0x01DA3150</pre> Putaaaaain de commentaires WordPress !!

Dans le bloc de code du commentaire précédent, remplacer les “#” qui sont tout seul sur une ligne par le gloubiboulga correspondant.

Pour le premier dièse :

# __main__.CC object at 0x01DA34B0

Pour les deux dièses suivants :

# __main__.DD object at 0x01DA3150
]]>
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-6/#comment-19193 Réchèr Fri, 31 Jan 2014 12:49:38 +0000 http://sametmax.com/?p=5136#comment-19193 Et voici quelques corrections et tentatives d'explications. R<strong>e</strong>iden R<strong>a</strong>iden le garbage collect<strong>eur</strong> le garbage collect<strong>or</strong> (quitte à faire un anglicisme, autant le faire jusqu'au bout). <em>time.sleep(1)</em> Si j'ai bien tout compris, le sleep dans le code, c'est pour donner un peu de temps au garbage collector, afin d'être sûr qu'il se déclenche. Est-ce qu'il ne faudrait pas le dire ? Les explications qui viennent juste après le code ne mentionnent pas du tout le sleep, donc on ne comprends pas forcément ce qu'il vient foutre là. <em>Python essaye d’appeler les méthodes __unicode__ et __str__ (je ne sais plus dans quel ordre) pour récupérer la valeur à afficher. </em> Pas en python 2.x, en tout cas. En 2.x, le print appelle systématiquement __str__, et balance le résultat sur stdout. __unicode__est utilisé uniquement quand on appelle explicitement unicode(). <pre lang="python">Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. class CC(object): def __unicode__(self): return unicode("ceci est de l'unicode") def __str__(self): return str("ceci est une string") c = CC() c # print c # ceci est une string unicode(c) # u"ceci est de l'unicode" class DD(object): def __unicode__(self): return unicode("ceci est de l'unicode DD") d = DD() d # print d # unicode(d) # u"ceci est de l'unicode DD" </pre> En 3.x, je ne sais pas comment ça marche. Je dirais que le print appelle __str__, puis il essaye de convertir le résultat obtenu (qui est de l'unicode) dans l'encodage de sys.stdout, et qu'il ressort ça comme il peut. Et voici quelques corrections et tentatives d’explications.

Reiden
Raiden

le garbage collecteur
le garbage collector
(quitte à faire un anglicisme, autant le faire jusqu’au bout).

time.sleep(1)

Si j’ai bien tout compris, le sleep dans le code, c’est pour donner un peu de temps au garbage collector, afin d’être sûr qu’il se déclenche. Est-ce qu’il ne faudrait pas le dire ? Les explications qui viennent juste après le code ne mentionnent pas du tout le sleep, donc on ne comprends pas forcément ce qu’il vient foutre là.

Python essaye d’appeler les méthodes __unicode__ et __str__ (je ne sais plus dans quel ordre) pour récupérer la valeur à afficher.

Pas en python 2.x, en tout cas.
En 2.x, le print appelle systématiquement __str__, et balance le résultat sur stdout. __unicode__est utilisé uniquement quand on appelle explicitement unicode().

Python 2.7.2 (default, Jun 12 2011, 15:08:59)
[MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
 
class CC(object):
    def __unicode__(self):
        return unicode("ceci est de l'unicode")
    def __str__(self):
        return str("ceci est une string")
 
c = CC()
c
# 
print c
# ceci est une string
unicode(c)
# u"ceci est de l'unicode"
class DD(object):
    def __unicode__(self):
        return unicode("ceci est de l'unicode DD")
 
d = DD()
d
# 
print d
# 
unicode(d)
# u"ceci est de l'unicode DD"

En 3.x, je ne sais pas comment ça marche. Je dirais que le print appelle __str__, puis il essaye de convertir le résultat obtenu (qui est de l’unicode) dans l’encodage de sys.stdout, et qu’il ressort ça comme il peut.

]]>
By: Max 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-6/#comment-7241 Max Sun, 24 Mar 2013 18:31:22 +0000 http://sametmax.com/?p=5136#comment-7241 fixed fixed

]]>
By: oyo 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-6/#comment-7220 oyo Sat, 23 Mar 2013 18:12:24 +0000 http://sametmax.com/?p=5136#comment-7220 Le lien sur les context-managers est faux. Celui-ci est ok: http://sametmax.com/les-context-managers-et-le-mot-cle-with-en-python/ Le lien sur les context-managers est faux.

Celui-ci est ok: http://sametmax.com/les-context-managers-et-le-mot-cle-with-en-python/

]]>
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-6/#comment-6573 Sam Sun, 03 Mar 2013 10:18:44 +0000 http://sametmax.com/?p=5136#comment-6573 @Jerome: super() ne marche qu'avec Python 3. Ceci dit bon signalement de total_ordering, qui marche très en Python 2.7 (car il a été backporté depuis Python 3.2 après son ajout). @Jerome: super() ne marche qu’avec Python 3. Ceci dit bon signalement de total_ordering, qui marche très en Python 2.7 (car il a été backporté depuis Python 3.2 après son ajout).

]]>
By: JeromeJ 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-6/#comment-6569 JeromeJ Sun, 03 Mar 2013 05:18:30 +0000 http://sametmax.com/?p=5136#comment-6569 (Tiens, je pige pas functools.total_ordering existait déjà depuis 2.7 apparemment, alors pourquoi il est marqué depuis 3.2 dans la doc python3 (aurait-il été retiré entre temps ?)) (Tiens, je pige pas functools.total_ordering existait déjà depuis 2.7 apparemment, alors pourquoi il est marqué depuis 3.2 dans la doc python3 (aurait-il été retiré entre temps ?))

]]>
By: JeromeJ 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-6/#comment-6567 JeromeJ Sun, 03 Mar 2013 05:00:33 +0000 http://sametmax.com/?p=5136#comment-6567 Bon c'est hyper new, mais tous le monde ne compte ptet pas faire du Python même si le tuto est en Python 2: http://docs.python.org/3/library/functools.html#functools.total_ordering De plus, je pense qu'il n'y a pas besoin de faire super(Tronc, self) (& co), super() donne le même effet en plus short \o/ (je pense pas que ça soit versionné) Bon c’est hyper new, mais tous le monde ne compte ptet pas faire du Python même si le tuto est en Python 2:

http://docs.python.org/3/library/functools.html#functools.total_ordering

De plus, je pense qu’il n’y a pas besoin de faire super(Tronc, self) (& co), super() donne le même effet en plus short \o/ (je pense pas que ça soit versionné)

]]>
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-6/#comment-6540 Sam Fri, 01 Mar 2013 14:36:58 +0000 http://sametmax.com/?p=5136#comment-6540 Bien vu. Fixed. Bien vu. Fixed.

]]>
By: roro 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-6/#comment-6534 roro Fri, 01 Mar 2013 13:21:03 +0000 http://sametmax.com/?p=5136#comment-6534 A propos de la remarque de Glos Flood, et dont le sujet m'était passé "à côté", vu que jusqu'à vous découvrir je ne faisais que de l'empirisme au copié/collé. Le: " ...celles qui sont nommées avec deux underscores..." Aurait dû être: ...avec deux "doubles underscores". (Neewbee inside et: E...c...ge de ch'val.) A propos de la remarque de Glos Flood, et dont le sujet m’était passé “à côté”, vu que jusqu’à vous découvrir je ne faisais que de l’empirisme au copié/collé.
Le: ” …celles qui sont nommées avec deux underscores…”
Aurait dû être: …avec deux “doubles underscores”.
(Neewbee inside et: E…c…ge de ch’val.)

]]>