{"id":969,"date":"2010-10-02T10:34:22","date_gmt":"2010-10-02T08:34:22","guid":{"rendered":"http:\/\/linux.leunen.com\/?p=969"},"modified":"2010-10-02T10:34:22","modified_gmt":"2010-10-02T08:34:22","slug":"python-les-fonctions-sont-des-objets","status":"publish","type":"post","link":"https:\/\/www.leunen.com\/linux\/2010\/10\/python-les-fonctions-sont-des-objets\/","title":{"rendered":"Python: les fonctions sont des objets"},"content":{"rendered":"<p>En python, tout est objet. Ceci est valable aussi pour les fonctions. Une fonction en python est un objet et peut donc avoir des attributs.<\/p>\n<pre class=\"codesource\">\r\n<span class=\"reservedname\">def<\/span>&nbsp;ma_fonction():\r\n&nbsp;&nbsp;<span class=\"reservedname\">pass<\/span>\r\n<\/pre>\n<p>Cette foncion simple qui ne fait rien, a par exemple un attribut <em>__name__<\/em>. La commande suivante affichera le nom de la fonction:<\/p>\n<pre class=\"codesource\">\r\n&gt;&gt;&gt;&nbsp;<span class=\"reservedname\">print<\/span>&nbsp;ma_fonction.__name__\r\nma_fonction\r\n<\/pre>\n<p>L&rsquo;utilisateur peut \u00e9galement d\u00e9finir ses propres attributs \u00e0 cette fonction:<\/p>\n<pre class=\"codesource\">\r\nma_fonction.description&nbsp;=&nbsp;<span class=\"quotedstring\">\"Une&nbsp;fonction&nbsp;qui&nbsp;ne&nbsp;fait&nbsp;rien\"<\/span>\r\n\r\n&gt;&gt;&gt;&nbsp;<span class=\"reservedname\">print<\/span>&nbsp;ma_fonction.description\r\nUne&nbsp;fonction&nbsp;qui&nbsp;ne&nbsp;fait&nbsp;rien\r\n<\/pre>\n<p>Les attributs sont stock\u00e9s dans un attribut de la fonction appel\u00e9 <em>__dict__<\/em> qui comme son nom l&rsquo;indique est un dictionnaire contenant seulement les attributs donn\u00e9s par l&rsquo;utilisateur. <em>__name__<\/em> ne s&rsquo;y retrouve pas par exemple:<\/p>\n<pre class=\"codesource\">\r\n&gt;&gt;&gt;&nbsp;ma_fonction.__dict__\r\n{<span class=\"quotedstring\">'description'<\/span>:&nbsp;<span class=\"quotedstring\">'Une&nbsp;fonction&nbsp;qui&nbsp;ne&nbsp;fait&nbsp;rien'<\/span>}\r\n<\/pre>\n<p>On peut aussi faire des choses un peu plus surprenantes:<\/p>\n<pre class=\"codesource\">\r\n<span class=\"reservedname\">class<\/span>&nbsp;MaClasse():\r\n&nbsp;&nbsp;<span class=\"reservedname\">def<\/span>&nbsp;ma_fonction(self):\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"reservedname\">print<\/span>&nbsp;<span class=\"quotedstring\">\"ma&nbsp;fonction&nbsp;est&nbsp;ex\u00e9cut\u00e9e\"<\/span>\r\n\r\n<span class=\"reservedname\">def<\/span>&nbsp;une_autre_fonction():\r\n&nbsp;&nbsp;<span class=\"reservedname\">print<\/span>&nbsp;<span class=\"quotedstring\">\"une&nbsp;autre&nbsp;fonction&nbsp;est&nbsp;ex\u00e9cut\u00e9e\"<\/span>\r\n\r\n&gt;&gt;&gt;&nbsp;c=&nbsp;MaClasse()\r\n&gt;&gt;&gt;&nbsp;c.ma_fonction()\r\nma&nbsp;fonction&nbsp;est&nbsp;ex\u00e9cut\u00e9e\r\n\r\n&gt;&gt;&gt;&nbsp;c.ma_fonction&nbsp;=&nbsp;une_autre_fonction\r\n&gt;&gt;&gt;&nbsp;c.ma_fonction()\r\nune&nbsp;autre&nbsp;fonction&nbsp;est&nbsp;ex\u00e9cut\u00e9e\r\n<\/pre>\n<p>Autrement dit, j&rsquo;ai remplac\u00e9 dans ma classe l&rsquo;objet ma_fonction par une_autre_fonction. Cela veut dire qu&rsquo;au runtime, c&rsquo;est \u00e0 dire pendant l&rsquo;ex\u00e9cution du programme, on peut dynamiquement modifier les fonctions. Vous noterez aussi qu&rsquo;ici, on a assign\u00e9 \u00e0 une m\u00e9thode de classe une fonction normale et ceci avec une aisance que seul python apporte.<br \/>\nA mon avis, ce n&rsquo;est pas \u00e0 utiliser trop souvent et m\u00eame sans doute \u00e0 \u00e9viter absolument sous peine de faire du d\u00e9buggage du programme un v\u00e9ritable cauchemar.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En python, tout est objet. Ceci est valable aussi pour les fonctions. Une fonction en python est un objet et peut donc avoir des attributs. def&nbsp;ma_fonction(): &nbsp;&nbsp;pass Cette foncion simple qui ne fait rien, a par exemple un attribut __name__. La commande suivante affichera le nom de la fonction: &gt;&gt;&gt;&nbsp;print&nbsp;ma_fonction.__name__ ma_fonction L&rsquo;utilisateur peut \u00e9galement d\u00e9finir [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[15],"tags":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"utilisations particuli\u00e8res des fonctions en tant qu&#039;objet.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Michel Leunen\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.leunen.com\/linux\/2010\/10\/python-les-fonctions-sont-des-objets\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Autour de Linux | Ubuntu, linux, C++, audio, python, ...\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Python: les fonctions sont des objets | Autour de Linux\" \/>\n\t\t<meta property=\"og:description\" content=\"utilisations particuli\u00e8res des fonctions en tant qu&#039;objet.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.leunen.com\/linux\/2010\/10\/python-les-fonctions-sont-des-objets\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2010-10-02T08:34:22+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2010-10-02T08:34:22+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Python: les fonctions sont des objets | Autour de Linux\" \/>\n\t\t<meta name=\"twitter:description\" content=\"utilisations particuli\u00e8res des fonctions en tant qu&#039;objet.\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2010\\\/10\\\/python-les-fonctions-sont-des-objets\\\/#article\",\"name\":\"Python: les fonctions sont des objets | Autour de Linux\",\"headline\":\"Python: les fonctions sont des objets\",\"author\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/author\\\/michel-leunen\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/#organization\"},\"datePublished\":\"2010-10-02T10:34:22+02:00\",\"dateModified\":\"2010-10-02T10:34:22+02:00\",\"inLanguage\":\"fr-FR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2010\\\/10\\\/python-les-fonctions-sont-des-objets\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2010\\\/10\\\/python-les-fonctions-sont-des-objets\\\/#webpage\"},\"articleSection\":\"python\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2010\\\/10\\\/python-les-fonctions-sont-des-objets\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.leunen.com\\\/linux\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/category\\\/python\\\/#listItem\",\"name\":\"python\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/category\\\/python\\\/#listItem\",\"position\":2,\"name\":\"python\",\"item\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/category\\\/python\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2010\\\/10\\\/python-les-fonctions-sont-des-objets\\\/#listItem\",\"name\":\"Python: les fonctions sont des objets\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2010\\\/10\\\/python-les-fonctions-sont-des-objets\\\/#listItem\",\"position\":3,\"name\":\"Python: les fonctions sont des objets\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/category\\\/python\\\/#listItem\",\"name\":\"python\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/#organization\",\"name\":\"Autour de Linux\",\"description\":\"Ubuntu, linux, C++, audio, python, ...\",\"url\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/author\\\/michel-leunen\\\/#author\",\"url\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/author\\\/michel-leunen\\\/\",\"name\":\"Michel Leunen\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2010\\\/10\\\/python-les-fonctions-sont-des-objets\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/41e08d5087493eaa9ce4ebd4e0a55ffb?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Michel Leunen\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2010\\\/10\\\/python-les-fonctions-sont-des-objets\\\/#webpage\",\"url\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2010\\\/10\\\/python-les-fonctions-sont-des-objets\\\/\",\"name\":\"Python: les fonctions sont des objets | Autour de Linux\",\"description\":\"utilisations particuli\\u00e8res des fonctions en tant qu'objet.\",\"inLanguage\":\"fr-FR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2010\\\/10\\\/python-les-fonctions-sont-des-objets\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/author\\\/michel-leunen\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/author\\\/michel-leunen\\\/#author\"},\"datePublished\":\"2010-10-02T10:34:22+02:00\",\"dateModified\":\"2010-10-02T10:34:22+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/#website\",\"url\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/\",\"name\":\"Autour de Linux\",\"description\":\"Ubuntu, linux, C++, audio, python, ...\",\"inLanguage\":\"fr-FR\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Python: les fonctions sont des objets | Autour de Linux","description":"utilisations particuli\u00e8res des fonctions en tant qu'objet.","canonical_url":"https:\/\/www.leunen.com\/linux\/2010\/10\/python-les-fonctions-sont-des-objets\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.leunen.com\/linux\/2010\/10\/python-les-fonctions-sont-des-objets\/#article","name":"Python: les fonctions sont des objets | Autour de Linux","headline":"Python: les fonctions sont des objets","author":{"@id":"https:\/\/www.leunen.com\/linux\/author\/michel-leunen\/#author"},"publisher":{"@id":"https:\/\/www.leunen.com\/linux\/#organization"},"datePublished":"2010-10-02T10:34:22+02:00","dateModified":"2010-10-02T10:34:22+02:00","inLanguage":"fr-FR","mainEntityOfPage":{"@id":"https:\/\/www.leunen.com\/linux\/2010\/10\/python-les-fonctions-sont-des-objets\/#webpage"},"isPartOf":{"@id":"https:\/\/www.leunen.com\/linux\/2010\/10\/python-les-fonctions-sont-des-objets\/#webpage"},"articleSection":"python"},{"@type":"BreadcrumbList","@id":"https:\/\/www.leunen.com\/linux\/2010\/10\/python-les-fonctions-sont-des-objets\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux#listItem","position":1,"name":"Home","item":"https:\/\/www.leunen.com\/linux","nextItem":{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux\/category\/python\/#listItem","name":"python"}},{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux\/category\/python\/#listItem","position":2,"name":"python","item":"https:\/\/www.leunen.com\/linux\/category\/python\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux\/2010\/10\/python-les-fonctions-sont-des-objets\/#listItem","name":"Python: les fonctions sont des objets"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux\/2010\/10\/python-les-fonctions-sont-des-objets\/#listItem","position":3,"name":"Python: les fonctions sont des objets","previousItem":{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux\/category\/python\/#listItem","name":"python"}}]},{"@type":"Organization","@id":"https:\/\/www.leunen.com\/linux\/#organization","name":"Autour de Linux","description":"Ubuntu, linux, C++, audio, python, ...","url":"https:\/\/www.leunen.com\/linux\/"},{"@type":"Person","@id":"https:\/\/www.leunen.com\/linux\/author\/michel-leunen\/#author","url":"https:\/\/www.leunen.com\/linux\/author\/michel-leunen\/","name":"Michel Leunen","image":{"@type":"ImageObject","@id":"https:\/\/www.leunen.com\/linux\/2010\/10\/python-les-fonctions-sont-des-objets\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/41e08d5087493eaa9ce4ebd4e0a55ffb?s=96&d=mm&r=g","width":96,"height":96,"caption":"Michel Leunen"}},{"@type":"WebPage","@id":"https:\/\/www.leunen.com\/linux\/2010\/10\/python-les-fonctions-sont-des-objets\/#webpage","url":"https:\/\/www.leunen.com\/linux\/2010\/10\/python-les-fonctions-sont-des-objets\/","name":"Python: les fonctions sont des objets | Autour de Linux","description":"utilisations particuli\u00e8res des fonctions en tant qu'objet.","inLanguage":"fr-FR","isPartOf":{"@id":"https:\/\/www.leunen.com\/linux\/#website"},"breadcrumb":{"@id":"https:\/\/www.leunen.com\/linux\/2010\/10\/python-les-fonctions-sont-des-objets\/#breadcrumblist"},"author":{"@id":"https:\/\/www.leunen.com\/linux\/author\/michel-leunen\/#author"},"creator":{"@id":"https:\/\/www.leunen.com\/linux\/author\/michel-leunen\/#author"},"datePublished":"2010-10-02T10:34:22+02:00","dateModified":"2010-10-02T10:34:22+02:00"},{"@type":"WebSite","@id":"https:\/\/www.leunen.com\/linux\/#website","url":"https:\/\/www.leunen.com\/linux\/","name":"Autour de Linux","description":"Ubuntu, linux, C++, audio, python, ...","inLanguage":"fr-FR","publisher":{"@id":"https:\/\/www.leunen.com\/linux\/#organization"}}]},"og:locale":"fr_FR","og:site_name":"Autour de Linux | Ubuntu, linux, C++, audio, python, ...","og:type":"article","og:title":"Python: les fonctions sont des objets | Autour de Linux","og:description":"utilisations particuli\u00e8res des fonctions en tant qu'objet.","og:url":"https:\/\/www.leunen.com\/linux\/2010\/10\/python-les-fonctions-sont-des-objets\/","article:published_time":"2010-10-02T08:34:22+00:00","article:modified_time":"2010-10-02T08:34:22+00:00","twitter:card":"summary","twitter:title":"Python: les fonctions sont des objets | Autour de Linux","twitter:description":"utilisations particuli\u00e8res des fonctions en tant qu'objet."},"aioseo_meta_data":{"post_id":"969","title":"Python: les fonctions sont des objets | #site_title","description":"utilisations particuli\u00e8res des fonctions en tant qu'objet.","keywords":[{"label":"python,fonctions,objet,classe,methode","value":"python,fonctions,objet,classe,methode"}],"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2020-12-21 07:19:17","updated":"2025-06-23 21:06:29","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.leunen.com\/linux\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.leunen.com\/linux\/category\/python\/\" title=\"python\">python<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tPython: les fonctions sont des objets\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.leunen.com\/linux"},{"label":"python","link":"https:\/\/www.leunen.com\/linux\/category\/python\/"},{"label":"Python: les fonctions sont des objets","link":"https:\/\/www.leunen.com\/linux\/2010\/10\/python-les-fonctions-sont-des-objets\/"}],"_links":{"self":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/969"}],"collection":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/comments?post=969"}],"version-history":[{"count":3,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/969\/revisions"}],"predecessor-version":[{"id":972,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/969\/revisions\/972"}],"wp:attachment":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/media?parent=969"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/categories?post=969"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/tags?post=969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}