{"id":415,"date":"2010-02-04T23:29:03","date_gmt":"2010-02-04T22:29:03","guid":{"rendered":"http:\/\/j-mad.com\/blog\/?p=415"},"modified":"2010-02-12T09:47:56","modified_gmt":"2010-02-12T08:47:56","slug":"petit-memo-python","status":"publish","type":"post","link":"https:\/\/j-mad.com\/blog\/2010\/02\/04\/petit-memo-python\/","title":{"rendered":"petit m\u00e9mo python"},"content":{"rendered":"<p>J&#8217;aime lire du code des autres. Enfin quand c&#8217;est du code de qualit\u00e9, bien entendu. (Parce que question code bien pourri&#8230; j&#8217;ai \u00e9t\u00e9 servi, plus qu&#8217;\u00e0 mon tour, sur les diff\u00e9rentes reprises de projets compl\u00e8tement \u00e0 la ramasse auxquels j&#8217;ai eu la joie de participer).<\/p>\n<p>Pourquoi j&#8217;aime lire du code bien \u00e9crit ?<\/p>\n<p>Parce que tout simplement, j&#8217;apprend beaucoup en faisant cela. Et parfois, je d\u00e9couvre des &#8216;trucs&#8217;, que je trouve tellement \u00e9l\u00e9gant que je me dis &#8216;mais comment je pouvais faire sans&#8217;.<\/p>\n<p>C&#8217;est une des raisons qui fait que je me fais assez r\u00e9guli\u00e8rement des sessions de lecture du code du django. La derni\u00e8re remonte \u00e0 .. hier soir.<\/p>\n<p>Et j&#8217;y ai d\u00e9couvert une \u00e9criture que je trouve tr\u00e8s \u00e9l\u00e9gante. C&#8217;est celle-ci :<\/p>\n<div class=\"codecolorer-container python default\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><div class=\"python codecolorer\"><span class=\"kw1\">def<\/span> func<span class=\"br0\">&#40;<\/span>foo<span class=\"br0\">&#41;<\/span>:<br \/>\n&nbsp; &nbsp; <span class=\"kw1\">return<\/span> foo<br \/>\n<br \/>\ntoto <span class=\"sy0\">=<\/span> func<span class=\"br0\">&#40;<\/span>arg<span class=\"br0\">&#41;<\/span> <span class=\"kw1\">or<\/span> <span class=\"st0\">&quot;bip&quot;<\/span><\/div><\/div>\n<p>A quoi sert-elle ? elle permet de remplacer le code suivant :<\/p>\n<div class=\"codecolorer-container python default\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><div class=\"python codecolorer\"><span class=\"kw1\">def<\/span> func<span class=\"br0\">&#40;<\/span>foo<span class=\"br0\">&#41;<\/span>:<br \/>\n&nbsp; &nbsp; <span class=\"kw1\">return<\/span> foo<br \/>\n<br \/>\nbar <span class=\"sy0\">=<\/span> func<span class=\"br0\">&#40;<\/span><span class=\"kw2\">None<\/span><span class=\"br0\">&#41;<\/span><br \/>\ntoto <span class=\"sy0\">=<\/span> bar <span class=\"kw1\">if<\/span> bar <span class=\"kw1\">else<\/span> <span class=\"st0\">&quot;bip&quot;<\/span><\/div><\/div>\n<p>Une petite explication en bon fran\u00e7ais ? (pas forc\u00e9ment utile, j&#8217;en conviens, vu la simplicit\u00e9 de la chose, mais bon).<\/p>\n<p>Imaginons que l&#8217;on veuille donner une valeur \u00e0 une variable. Cette valeur peut-\u00eatre soit la valeur de retour d&#8217;une fonction, soit si le code de retour est None (ou False) une chaine de caract\u00e8re. Sans le petit truc avec or, on est oblig\u00e9 d&#8217;\u00e9crire le code que j&#8217;ai mis juste au dessus et qui utilise une variable temporaire (et un op\u00e9rateur if .. else .. que je n&#8217;aime pas trop).<\/p>\n<p>Voila, je suis sur que je n&#8217;ai rien appris \u00e0 personne, mais bon, on ne sait jamais.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>J&#8217;aime lire du code des autres. Enfin quand c&#8217;est du code de qualit\u00e9, bien entendu. (Parce que question code bien pourri&#8230; j&#8217;ai \u00e9t\u00e9 servi, plus qu&#8217;\u00e0 mon tour, sur les diff\u00e9rentes reprises de projets compl\u00e8tement \u00e0 la ramasse auxquels j&#8217;ai eu la joie de participer). Pourquoi j&#8217;aime lire du code bien \u00e9crit ? Parce que &hellip; <a href=\"https:\/\/j-mad.com\/blog\/2010\/02\/04\/petit-memo-python\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">petit m\u00e9mo python<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[5],"tags":[98],"class_list":["post-415","post","type-post","status-publish","format-standard","hentry","category-python","tag-python"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p12cdp-6H","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/415","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/comments?post=415"}],"version-history":[{"count":4,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/415\/revisions"}],"predecessor-version":[{"id":426,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/415\/revisions\/426"}],"wp:attachment":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/media?parent=415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/categories?post=415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/tags?post=415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}