{"id":3112,"date":"2025-09-21T07:37:40","date_gmt":"2025-09-21T05:37:40","guid":{"rendered":"https:\/\/davidka.net\/ru\/?p=3112"},"modified":"2025-09-22T04:04:27","modified_gmt":"2025-09-22T02:04:27","slug":"copying-objects-in-python","status":"publish","type":"post","link":"https:\/\/it.davidka.net\/it\/copying-objects-in-python\/","title":{"rendered":"Guida alla copia degli oggetti in Python"},"content":{"rendered":"\n<p class=\"has-neve-link-color-color has-text-color has-link-color has-medium-font-size wp-elements-9893b399f322b6dff867de461df3fe59 wp-block-paragraph\">La copia degli oggetti \u00e8 un concetto fondamentale in Python e la sua incomprensione porta spesso a bug difficili da individuare. Quando modifichi un oggetto e un altro cambia inaspettatamente, il problema risiede molto probabilmente nel modo in cui \u00e8 stato copiato. Facciamo chiarezza una volta per tutte.<\/p>\n\n\n\n<div id=\"rtoc-mokuji-wrapper\" class=\"rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default\" data-id=\"3112\" data-theme=\"Neve - Davidka\">\n\t\t\t<div id=\"rtoc-mokuji-title\" class=\"rtoc_btn_none rtoc_left\">\n\t\t\t\n\t\t\t<span>In Questo Articolo<\/span>\n\t\t\t<\/div><ul class=\"rtoc-mokuji mokuji_none level-3\"><li class=\"rtoc-item\"><a href=\"#rtoc-1\">\ud83d\udd0e Perch\u00e9 la copia degli oggetti \u00e8 cos\u00ec importante?<\/a><ul class=\"rtoc-mokuji mokuji_none level-3\"><li class=\"rtoc-item\"><a href=\"#rtoc-2\">\u2699\ufe0f Due tipi di copia<\/a><ul class=\"rtoc-mokuji mokuji_none level-3\"><li class=\"rtoc-item\"><a href=\"#rtoc-3\">\ud83d\udfe6 Copia superficiale (<code class=\"\" data-line=\"\">copy.copy()<\/code>)<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-4\">\ud83d\udfe9 Copia profonda (<code class=\"\" data-line=\"\">copy.deepcopy()<\/code>)<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-5\">\ud83d\udcd1 Tabella riassuntiva: <code class=\"\" data-line=\"\">copy.copy()<\/code> vs <code class=\"\" data-line=\"\">copy.deepcopy()<\/code><\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-6\">\ud83e\uddea Esempi pratici per la tabella<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-7\">\ud83d\udccc Personalizzazione del comportamento: <code class=\"\" data-line=\"\">__copy__<\/code> e <code class=\"\" data-line=\"\">__deepcopy__<\/code><\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-8\">\u26a1 Prestazioni e insidie<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-9\">Quando usare cosa: Le regole principali<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ol><\/div><h4 id=\"rtoc-1\"  class=\"wp-block-heading\"><strong>\ud83d\udd0e Perch\u00e9 la copia degli oggetti \u00e8 cos\u00ec importante?<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">In Python, le variabili non sono &#8220;scatole&#8221; che contengono dati, ma piuttosto &#8220;etichette&#8221; o riferimenti che puntano a oggetti in memoria. Quando si esegue una semplice assegnazione, come questa:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">lista_a = &#091;1, 2, 3]\nlista_b = lista_a<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Non stai creando una nuova lista. Stai semplicemente creando un altro riferimento (<code class=\"\" data-line=\"\">lista_b<\/code>) che punta esattamente allo stesso oggetto lista.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 <strong>Qualsiasi modifica a <code class=\"\" data-line=\"\">lista_a<\/code> si rifletter\u00e0 immediatamente su <code class=\"\" data-line=\"\">lista_b<\/code> (e viceversa), perch\u00e9 sono lo stesso oggetto.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Analogia:<\/strong> Immagina di avere un documento Google Docs. Se invii un link a un amico, lui modificher\u00e0 il tuo documento originale. Questa \u00e8 un&#8217;assegnazione. Se invece selezioni &#8220;File&#8221; \u2192 &#8220;Crea una copia&#8221;, verr\u00e0 creato un documento completamente indipendente. Il modulo <code class=\"\" data-line=\"\">copy<\/code> in Python esiste proprio per creare questo tipo di copie indipendenti.<\/p>\n\n\n\n<h4 id=\"rtoc-2\"  class=\"wp-block-heading\"><strong>\u2699\ufe0f Due tipi di copia<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Il modulo <code class=\"\" data-line=\"\">copy<\/code> fornisce due funzioni chiave:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code class=\"\" data-line=\"\">copy.copy()<\/code> \u2014 crea una <strong>copia superficiale<\/strong> (shallow copy).<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">copy.deepcopy()<\/code> \u2014 crea una <strong>copia profonda<\/strong> (deep copy).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">La differenza principale tra le due risiede nel modo in cui gestiscono gli oggetti annidati (come liste all&#8217;interno di liste o dizionari all&#8217;interno di dizionari).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 id=\"rtoc-3\"  class=\"wp-block-heading\"><strong>\ud83d\udfe6 Copia superficiale (<code class=\"\" data-line=\"\">copy.copy()<\/code>)<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><code class=\"\" data-line=\"\">copy.copy()<\/code> crea un nuovo oggetto contenitore di primo livello, ma invece di copiare gli oggetti annidati, inserisce al suo interno dei riferimenti agli oggetti originali.<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">import copy\n\nlista_originale = &#091;1, 2, &#091;3, 4]]\ncopia_superficiale = copy.copy(lista_originale)\n\n# Modifica la lista annidata nell&#039;originale\nlista_originale&#091;2]&#091;0] = 99\n\nprint(f&quot;Originale: {lista_originale}&quot;)    # Output: Originale: &#091;1, 2, &#091;99, 4]]\nprint(f&quot;Copia superficiale: {copia_superficiale}&quot;) # Output: Copia superficiale: &#091;1, 2, &#091;99, 4]]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Come puoi vedere, la modifica della lista annidata ha interessato sia l&#8217;originale che la copia, perch\u00e9 condividono la stessa lista annidata.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Diagramma ASCII:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">lista_originale    \u2192 &#091; 1, 2, \u2500\u2500\u2500\u25ba lista_interna ]\ncopia_superficiale \u2192 &#091; 1, 2, \u2500\u2500\u2500\u25ba lista_interna ]\n                                lista_interna   \u2192 &#091; 99, 4 ]<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 id=\"rtoc-4\"  class=\"wp-block-heading\"><strong>\ud83d\udfe9 Copia profonda (<code class=\"\" data-line=\"\">copy.deepcopy()<\/code>)<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><code class=\"\" data-line=\"\">copy.deepcopy()<\/code> risolve il problema dei riferimenti condivisi. Questa funzione attraversa ricorsivamente l&#8217;intero oggetto e crea copie complete e indipendenti di tutto ci\u00f2 che incontra, inclusi tutti gli oggetti annidati.<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">import copy\n\nlista_originale = &#091;1, 2, &#091;3, 4]]\ncopia_profonda = copy.deepcopy(lista_originale)\n\n# Modifica la lista annidata nell&#039;originale\nlista_originale&#091;2]&#091;0] = 99\n\nprint(f&quot;Originale: {lista_originale}&quot;) # Output: Originale: &#091;1, 2, &#091;99, 4]]\nprint(f&quot;Copia profonda: {copia_profonda}&quot;)     # Output: Copia profonda: &#091;1, 2, &#091;3, 4]]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ora, <code class=\"\" data-line=\"\">copia_profonda<\/code> \u00e8 completamente indipendente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Diagramma ASCII:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">lista_originale \u2192 &#091; 1, 2, \u2500\u2500\u2500\u25ba lista_a ]\ncopia_profonda  \u2192 &#091; 1, 2, \u2500\u2500\u2500\u25ba lista_b ]\n                             lista_a   \u2192 &#091; 99, 4 ]\n                             lista_b   \u2192 &#091; 3, 4 ]<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 id=\"rtoc-5\"  class=\"wp-block-heading\"><strong>\ud83d\udcd1 Tabella riassuntiva: <code class=\"\" data-line=\"\">copy.copy()<\/code> vs <code class=\"\" data-line=\"\">copy.deepcopy()<\/code><\/strong><\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Tipo di oggetto<\/th><th class=\"has-text-align-left\" data-align=\"left\">Esempio<\/th><th class=\"has-text-align-left\" data-align=\"left\"><code class=\"\" data-line=\"\">copy.copy()<\/code> (superficiale)<\/th><th class=\"has-text-align-left\" data-align=\"left\"><code class=\"\" data-line=\"\">copy.deepcopy()<\/code> (profonda)<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>list<\/strong> (lista)<\/td><td class=\"has-text-align-left\" data-align=\"left\"><code class=\"\" data-line=\"\">[1, 2, [3, 4]]<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Una nuova lista, ma la lista annidata <code class=\"\" data-line=\"\">[3, 4]<\/code> \u00e8 <strong>condivisa<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Una copia completamente indipendente; anche la lista annidata viene copiata<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>dict<\/strong> (dizionario)<\/td><td class=\"has-text-align-left\" data-align=\"left\"><code class=\"\" data-line=\"\">{&quot;a&quot;: 1, &quot;b&quot;: {&quot;c&quot;: 2}}<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Un nuovo dizionario, ma il <code class=\"\" data-line=\"\">{&quot;c&quot;: 2}<\/code> annidato \u00e8 <strong>condiviso<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Un dizionario indipendente e tutti i dizionari annidati<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>set<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code class=\"\" data-line=\"\">{1, 2, (3, 4)}<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Un nuovo set; gli elementi mutabili annidati sarebbero <strong>condivisi<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Un nuovo set; tutti gli elementi annidati vengono copiati ricorsivamente<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>tuple<\/strong> (tupla)<\/td><td class=\"has-text-align-left\" data-align=\"left\"><code class=\"\" data-line=\"\">(1, 2, [3, 4])<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Restituisce la stessa tupla, ma la lista annidata \u00e8 <strong>condivisa<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Una nuova tupla con una <strong>copia<\/strong> della lista annidata<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>str, int, float, bool<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code class=\"\" data-line=\"\">&quot;ciao&quot;<\/code>, <code class=\"\" data-line=\"\">42<\/code>, <code class=\"\" data-line=\"\">3.14<\/code>, <code class=\"\" data-line=\"\">True<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Restituisce lo stesso oggetto (sono immutabili, non serve copiarli)<\/td><td class=\"has-text-align-left\" data-align=\"left\">Come la copia superficiale<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>classe personalizzata<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code class=\"\" data-line=\"\">Nodo(1, Nodo(2))<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Un nuovo oggetto di primo livello; gli oggetti annidati sono <strong>condivisi<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Una copia completamente indipendente dell&#8217;oggetto e di tutti gli oggetti annidati<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>oggetto con <code class=\"\" data-line=\"\">__slots__<\/code><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Una classe con <code class=\"\" data-line=\"\">__slots__<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Viene copiato solo l&#8217;oggetto di primo livello<\/td><td class=\"has-text-align-left\" data-align=\"left\">Vengono copiati tutti gli oggetti annidati se supportano la copia<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>file \/ socket \/ stream<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code class=\"\" data-line=\"\">open(&quot;file.txt&quot;)<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>Errore<\/strong> (oggetto non copiabile)<\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>Errore<\/strong> (oggetto non copiabile)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 id=\"rtoc-6\"  class=\"wp-block-heading\"><strong>\ud83e\uddea Esempi pratici per la tabella<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udccc <strong>list<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">import copy\na = &#091;1, 2, &#091;3, 4]]\nb = copy.copy(a)\nc = copy.deepcopy(a)\na&#091;2]&#091;0] = 99\nprint(f&quot;copy: {b}&quot;)      # &#091;1, 2, &#091;99, 4]]\nprint(f&quot;deepcopy: {c}&quot;)  # &#091;1, 2, &#091;3, 4]]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udccc <strong>dict<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">import copy\na = {&quot;a&quot;: 1, &quot;b&quot;: {&quot;c&quot;: 2}}\nb = copy.copy(a)\nc = copy.deepcopy(a)\na&#091;&quot;b&quot;]&#091;&quot;c&quot;] = 42\nprint(f&quot;copy: {b}&quot;)      # {&#039;a&#039;: 1, &#039;b&#039;: {&#039;c&#039;: 42}}\nprint(f&quot;deepcopy: {c}&quot;)  # {&#039;a&#039;: 1, &#039;b&#039;: {&#039;c&#039;: 2}}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udccc <strong>set<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">import copy\na = {1, 2, (3, 4)} # I set possono contenere solo tipi immutabili\nb = copy.copy(a)\nc = copy.deepcopy(a)\nprint(b == c) # True (ma sono due oggetti indipendenti in memoria)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udccc <strong>tuple<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">import copy\na = (1, 2, &#091;3, 4]) # La tupla \u00e8 immutabile, ma il suo elemento lista no\nb = copy.copy(a)\nc = copy.deepcopy(a)\na&#091;2]&#091;0] = 99\nprint(f&quot;copy: {b}&quot;)      # (1, 2, &#091;99, 4])\nprint(f&quot;deepcopy: {c}&quot;)  # (1, 2, &#091;3, 4])<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udccc <strong>Classe personalizzata<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">import copy\nclass Nodo:\n    def __init__(self, valore, figlio=None):\n        self.valore = valore\n        self.figlio = figlio\n\na = Nodo(1, Nodo(2))\nb = copy.copy(a)\nc = copy.deepcopy(a)\na.figlio.valore = 99\nprint(f&quot;copy: {b.figlio.valore}&quot;)      # 99\nprint(f&quot;deepcopy: {c.figlio.valore}&quot;)  # 2<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 id=\"rtoc-7\"  class=\"wp-block-heading\"><strong>\ud83d\udccc Personalizzazione del comportamento: <code class=\"\" data-line=\"\">__copy__<\/code> e <code class=\"\" data-line=\"\">__deepcopy__<\/code><\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Puoi controllare il modo in cui i tuoi oggetti vengono copiati definendo metodi speciali nella loro classe.<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">import copy\nclass Personalizzata:\n    def __init__(self, x):\n        self.x = x\n    def __copy__(self):\n        print(&quot;Chiamato __copy__!&quot;)\n        # Restituisce una nuova istanza, ma con lo stesso riferimento ai dati interni\n        return Personalizzata(self.x)\n    def __deepcopy__(self, memo):\n        # memo \u00e8 un dizionario per tenere traccia degli oggetti gi\u00e0 copiati (evita la ricorsione)\n        print(&quot;Chiamato __deepcopy__!&quot;)\n        # Crea una copia completamente nuova, inclusi i dati annidati\n        return Personalizzata(copy.deepcopy(self.x, memo))\n\nobj = Personalizzata(&#091;1, 2])\nc1 = copy.copy(obj)       # Output: Chiamato __copy__!\nc2 = copy.deepcopy(obj)   # Output: Chiamato __deepcopy__!<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 id=\"rtoc-8\"  class=\"wp-block-heading\"><strong>\u26a1 Prestazioni e insidie<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Velocit\u00e0:<\/strong> <code class=\"\" data-line=\"\">copy.copy()<\/code> \u00e8 significativamente pi\u00f9 veloce perch\u00e9 non attraversa ricorsivamente l&#8217;intera struttura dei dati. <code class=\"\" data-line=\"\">copy.deepcopy()<\/code> pu\u00f2 essere molto lento per oggetti grandi e profondamente annidati.<\/li>\n\n\n\n<li><strong>Oggetti non copiabili:<\/strong> Le risorse di sistema come file aperti, socket o stream non possono essere copiate. Tentare di farlo sollever\u00e0 un errore.<\/li>\n\n\n\n<li><strong>Riferimenti ciclici:<\/strong> <code class=\"\" data-line=\"\">deepcopy<\/code> \u00e8 abbastanza intelligente da gestire i riferimenti ciclici (dove un oggetto <code class=\"\" data-line=\"\">A<\/code> fa riferimento a <code class=\"\" data-line=\"\">B<\/code>, e <code class=\"\" data-line=\"\">B<\/code> a sua volta fa riferimento ad <code class=\"\" data-line=\"\">A<\/code>) senza cadere in un ciclo infinito.<\/li>\n<\/ul>\n\n\n\n<h4 id=\"rtoc-9\"  class=\"wp-block-heading\"><strong>Quando usare cosa: Le regole principali<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Usa una copia superficiale (<code class=\"\" data-line=\"\">copy.copy()<\/code>)<\/strong> se il tuo oggetto contiene solo dati immutabili o se vuoi intenzionalmente che la copia e l&#8217;originale condividano oggetti annidati. \u00c8 veloce ed efficiente.<\/li>\n\n\n\n<li><strong>Usa una copia profonda (<code class=\"\" data-line=\"\">copy.deepcopy()<\/code>)<\/strong> quando hai bisogno di una copia completa e indipendente al 100% dall&#8217;originale, specialmente quando lavori con strutture dati complesse (liste, dizionari, istanze di classe).<\/li>\n\n\n\n<li><strong>Per gli oggetti immutabili<\/strong> (numeri, stringhe, tuple senza elementi mutabili), la copia \u00e8 generalmente inutile \u2014 Python ottimizza gi\u00e0 il loro uso.<\/li>\n\n\n\n<li><strong>Ricorda che puoi personalizzare<\/strong> il processo con <code class=\"\" data-line=\"\">__copy__<\/code> e <code class=\"\" data-line=\"\">__deepcopy__<\/code> per un controllo completo.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>La copia degli oggetti \u00e8 un concetto fondamentale in Python e la sua incomprensione porta spesso a bug difficili da individuare. Quando modifichi un oggetto e un altro cambia inaspettatamente, il problema risiede molto probabilmente nel modo in cui \u00e8 stato copiato. Facciamo chiarezza una volta per tutte.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"left","neve_meta_author_avatar":"on","neve_post_elements_order":"[\"content\",\"tags\",\"comments\"]","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[384],"tags":[885,874,872,875,873],"class_list":["post-3112","post","type-post","status-publish","format-standard","hentry","category-python-cheat-sheets","tag-tag-python-array-array","tag-tag-python-dict","tag-tag-python-list","tag-tag-python-set","tag-tag-python-typle"],"acf":[],"_links":{"self":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/posts\/3112","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/comments?post=3112"}],"version-history":[{"count":0,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/posts\/3112\/revisions"}],"wp:attachment":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/media?parent=3112"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/categories?post=3112"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/tags?post=3112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}