{"id":22428,"date":"2021-06-10T15:09:28","date_gmt":"2021-06-10T13:09:28","guid":{"rendered":"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/"},"modified":"2021-06-10T15:09:28","modified_gmt":"2021-06-10T13:09:28","slug":"python-3-10-le-novita-in-arrivo","status":"publish","type":"post","link":"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/","title":{"rendered":"Python 3.10: le novit\u00e0 in arrivo"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p>Il prossimo ottobre dovrebbe essere rilasciata la nuova versione di <strong><a href=\"https:\/\/www.html.it\/guide\/guida-python\/\">Python<\/a><\/strong>, la numero <strong>3.10<\/strong>. Sul sito ufficiale \u00e8 gi\u00e0 possibile ottenere la <strong>beta <\/strong>2, grazie alla quale possiamo apprezzare praticamente tutte le novit\u00e0 introdotte nel linguaggio.<\/p>\n<p>In questo articolo cercheremo di riassumere almeno le pi\u00f9 significative.<\/p>\n<h2>Messaggi di errore migliorati<\/h2>\n<p>Una prima novit\u00e0 introdotta con questa nuova versione riguarda i <strong>messaggi di errore<\/strong>. Generalmente, \u00e8 abbastanza semplice risalire alla causa degli errori dando un\u2019occhiata a quanto viene stampato nella console dall\u2019interprete di Python. Tuttavia, in alcuni casi pu\u00f2 non essere semplice identificare la causa in modo immediato.<\/p>\n<p>Per migliorare questo aspetto, sono stati aggiunti alcuni dettagli relativi a casi d\u2019uso comuni, che dovrebbero semplificare la fase di troubleshooting. Ad esempio, viene evidenziato in modo pi\u00f9 efficace un <a href=\"https:\/\/www.html.it\/pag\/15614\/dizionari\/\">dizionario<\/a> erroneamente non chiuso:<\/p>\n<div class=\"boximg\"><a href=\"https:\/\/www.html.it\/app\/uploads\/2021\/06\/1-oln891sxtszcmzq6245xtq.png\" class=\"fan_img\" rel=\"fan_group\"><img src=\"https:\/\/www.html.it\/app\/uploads\/2021\/06\/1-oln891sxtszcmzq6245xtq.png\" alt=\"\"\/><\/a><\/div>\n<p>Altri errori comuni che vengono adesso gestiti in maniera pi\u00f9 intuitiva riguarda la mancata chiusura delle virgolette che incapsulano una stringa, o l\u2019assena dei due punti (<code>:<\/code>) alla fine della condizione di un <code><a href=\"https:\/\/www.html.it\/pag\/66190\/istruzioni-condizionali-2\/\">if<\/a><\/code> o dopo la sintassi di un ciclo <code><a href=\"https:\/\/www.html.it\/pag\/40148\/cicli-for-e-while\/\">for<\/a><\/code>. Anche gli errori relativi ad <a href=\"https:\/\/www.html.it\/pag\/39741\/indentazione\/\">indentazioni<\/a> errate sono ora segnalati con messaggi pi\u00f9 espressivi:<\/p>\n<div class=\"boximg\"><span>Figura x. (click per ingrandire)<\/span><a href=\"http:\/\/feedproxy.google.com\/img_big\" class=\"fan_img\" rel=\"fan_group\"><img src=\"http:\/\/feedproxy.google.com\/img_small.png\" alt=\"\"\/><\/a><\/div>\n<div class=\"boximg\"><a href=\"https:\/\/www.html.it\/app\/uploads\/2021\/06\/1-nz3cxzsvsvum9bftsdvvma.png\" class=\"fan_img\" rel=\"fan_group\"><img src=\"https:\/\/www.html.it\/app\/uploads\/2021\/06\/1-nz3cxzsvsvum9bftsdvvma.png\" alt=\"\"\/><\/a><\/div>\n<h2>Switch (o Structural Pattern Matching)<\/h2>\n<p>Uno dei costrutti che finora \u00e8 mancato su Python \u00e8 quello dello <strong>switch<\/strong>, presente in altri linguaggi <a href=\"https:\/\/www.html.it\/guide\/guida-c\/\">C<\/a>-like. La nuova versione di Python introduce il cosiddetto <strong>Structural Pattern Matching<\/strong>, che di fatto permette di realizzare ci\u00f2 che pi\u00f9 si avvicina ad uno switch, sostituendosi alla necessit\u00e0 di affidarsi ad una lunga serie di <code>if-elif-else<\/code>. Vediamo un esempio:<\/p>\n<pre><code class=\"language-python\">\ndef mood_settimanale(giorno):\n    match giorno:\n        case 'Luned\u00ec':\n            return 'Si ricomincia...'\n        case 'Gioved\u00ec':\n            return 'Si avvicina il weekend!'\n        case 'Venerd\u00ec':\n            return 'Ci siamo quasi!'\n        case 'Sabato' | 'Domenica':\n            return 'Weekend!!!'\n        case _:\n            return 'Che noia...'\nprint(mood_settimanale(day='Mercoled\u00ec'))\n# Che noia...\nprint(mood_settimanale(day='Gioved\u00ec'))\n# Si avvicina il weekend!\nprint(mood_settimanale(day='Sabato'))\n# Weekend!!!\nprint(mood_settimanale(day='Luned\u00ec'))\n# Si ricomincia...\n<\/code><\/pre>\n<p>Vengono quindi introdotte le parole chiave <code>match<\/code> e <code>case<\/code>, con quest\u2019ultima che assume il significato equivalente al <code>default<\/code> di C nel caso in cui viene seguita dal carattere <code>_<\/code>.<\/p>\n<h2>Operatore Union<\/h2>\n<p>Finora, per poter definire una funzione in modo da limitare i parametri a poter assumere valori di uno specifico insieme di tipi, era necessario affidarsi all\u2019operatore <code>Union<\/code> del modulo typing:<\/p>\n<pre><code class=\"language-python\">\nfrom typing import Union\ndef square_root(number: Union[int, float]) -&gt; Union[int, float]:\n    return number ** 0.5\n<\/code><\/pre>\n<p>Con Python 3.10, \u00e8 introdotta una nuova sintassi che fa uso del carattere <code>|<\/code>, semplificando la scrittura del codice:<\/p>\n<pre><code class=\"language-python\">\ndef square_root(number: int | float) -&gt; int | float:\n    return number ** 0.5\n<\/code><\/pre>\n<h2>Migliorati i context manager<\/h2>\n<p>Altro miglioramento interessante \u00e8 quello che riguarda i context manager, che sfruttano la parola chiave <code>with<\/code> per definire un contesto entro cui limitare la sussistenza di certi oggetti, come gli handler dei file. Con Python 3.10 \u00e8 introdotta la possibilit\u00e0 di definire un insieme di oggetti, anzich\u00e9 limitarsi ad uno solo di essi, sfruttando la seguente sintassi:<\/p>\n<pre><code class=\"language-python\">\nwith (\n    open('file1.txt', 'r') as f1,\n    open('file2.txt', 'r') as f2\n):\n    content_1 = f1.read()\n    content_2 = f2.read()\n<\/code><\/pre>\n<h2>Altre novit\u00e0 in Python 3.10<\/h2>\n<p>Ovviamente ci sono altre novit\u00e0 significative che vedranno la luce con la nuova versione di Python. Per avere una panoramica completa, rimandiamo alla <a href=\"https:\/\/docs.python.org\/3.10\/whatsnew\/3.10.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">documentazione ufficiale<\/a>, che dettaglia tutti i miglioramenti introdotti nel linguaggio.<\/p>\n<p><em>Fonte<\/em>: <a href=\"https:\/\/docs.python.org\/3.10\/whatsnew\/3.10.html\" class=\"text-link text-link--special\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><span class=\"underline\">Python Docs<\/span><i class=\"ico-external\"\/><\/a><\/p>\n<\/div>\n<p><br \/>\n<br \/><a href=\"http:\/\/feedproxy.google.com\/~r\/htmlitedit\/~3\/vmQKtl42Xgo\/\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il prossimo ottobre dovrebbe essere rilasciata la nuova versione di Python, la numero 3.10. Sul sito ufficiale \u00e8 gi\u00e0 possibile ottenere la beta 2, grazie alla quale possiamo apprezzare praticamente tutte le novit\u00e0 introdotte nel linguaggio. In questo articolo cercheremo di riassumere almeno le pi\u00f9 significative. Messaggi di errore migliorati Una prima novit\u00e0 introdotta con&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_s2mail":""},"categories":[37],"tags":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Python 3.10: le novit\u00e0 in arrivo - AGENZIA WEB Italia<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python 3.10: le novit\u00e0 in arrivo - AGENZIA WEB Italia\" \/>\n<meta property=\"og:description\" content=\"Il prossimo ottobre dovrebbe essere rilasciata la nuova versione di Python, la numero 3.10. Sul sito ufficiale \u00e8 gi\u00e0 possibile ottenere la beta 2, grazie alla quale possiamo apprezzare praticamente tutte le novit\u00e0 introdotte nel linguaggio. In questo articolo cercheremo di riassumere almeno le pi\u00f9 significative. Messaggi di errore migliorati Una prima novit\u00e0 introdotta con...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/\" \/>\n<meta property=\"og:site_name\" content=\"AGENZIA WEB Italia\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-10T13:09:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.html.it\/app\/uploads\/2021\/06\/1-oln891sxtszcmzq6245xtq.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42\"},\"headline\":\"Python 3.10: le novit\u00e0 in arrivo\",\"datePublished\":\"2021-06-10T13:09:28+00:00\",\"dateModified\":\"2021-06-10T13:09:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/\"},\"wordCount\":428,\"publisher\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization\"},\"articleSection\":[\"News\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/\",\"url\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/\",\"name\":\"Python 3.10: le novit\u00e0 in arrivo - AGENZIA WEB Italia\",\"isPartOf\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#website\"},\"datePublished\":\"2021-06-10T13:09:28+00:00\",\"dateModified\":\"2021-06-10T13:09:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python 3.10: le novit\u00e0 in arrivo\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#website\",\"url\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/\",\"name\":\"AGENZIA WEB Italia\",\"description\":\"Web design Web agency Italia\",\"publisher\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization\",\"name\":\"Multimedia Web\",\"url\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-content\/uploads\/2016\/05\/multimediaweb1.png\",\"contentUrl\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-content\/uploads\/2016\/05\/multimediaweb1.png\",\"width\":200,\"height\":57,\"caption\":\"Multimedia Web\"},\"image\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g\",\"caption\":\"admin\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Python 3.10: le novit\u00e0 in arrivo - AGENZIA WEB Italia","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/","og_locale":"it_IT","og_type":"article","og_title":"Python 3.10: le novit\u00e0 in arrivo - AGENZIA WEB Italia","og_description":"Il prossimo ottobre dovrebbe essere rilasciata la nuova versione di Python, la numero 3.10. Sul sito ufficiale \u00e8 gi\u00e0 possibile ottenere la beta 2, grazie alla quale possiamo apprezzare praticamente tutte le novit\u00e0 introdotte nel linguaggio. In questo articolo cercheremo di riassumere almeno le pi\u00f9 significative. Messaggi di errore migliorati Una prima novit\u00e0 introdotta con...","og_url":"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/","og_site_name":"AGENZIA WEB Italia","article_published_time":"2021-06-10T13:09:28+00:00","og_image":[{"url":"https:\/\/www.html.it\/app\/uploads\/2021\/06\/1-oln891sxtszcmzq6245xtq.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"admin","Tempo di lettura stimato":"3 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/#article","isPartOf":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/"},"author":{"name":"admin","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42"},"headline":"Python 3.10: le novit\u00e0 in arrivo","datePublished":"2021-06-10T13:09:28+00:00","dateModified":"2021-06-10T13:09:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/"},"wordCount":428,"publisher":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization"},"articleSection":["News"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/","url":"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/","name":"Python 3.10: le novit\u00e0 in arrivo - AGENZIA WEB Italia","isPartOf":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#website"},"datePublished":"2021-06-10T13:09:28+00:00","dateModified":"2021-06-10T13:09:28+00:00","breadcrumb":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/python-3-10-le-novita-in-arrivo\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.nycwebdesign.eu\/webdesign\/"},{"@type":"ListItem","position":2,"name":"Python 3.10: le novit\u00e0 in arrivo"}]},{"@type":"WebSite","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#website","url":"https:\/\/www.nycwebdesign.eu\/webdesign\/","name":"AGENZIA WEB Italia","description":"Web design Web agency Italia","publisher":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.nycwebdesign.eu\/webdesign\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization","name":"Multimedia Web","url":"https:\/\/www.nycwebdesign.eu\/webdesign\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/logo\/image\/","url":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-content\/uploads\/2016\/05\/multimediaweb1.png","contentUrl":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-content\/uploads\/2016\/05\/multimediaweb1.png","width":200,"height":57,"caption":"Multimedia Web"},"image":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42","name":"admin","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g","caption":"admin"}}]}},"_links":{"self":[{"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/posts\/22428"}],"collection":[{"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/comments?post=22428"}],"version-history":[{"count":0,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/posts\/22428\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/media?parent=22428"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/categories?post=22428"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/tags?post=22428"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}