{"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:\/\/de.davidka.net\/de\/2025\/09\/21\/copying-objects-in-python\/","title":{"rendered":"Eine vollst\u00e4ndige Anleitung zum Kopieren von Objekten in Python"},"content":{"rendered":"\n<p class=\"has-neve-link-color-color has-text-color has-link-color has-medium-font-size wp-elements-36f6e622846523dd31e8d99c22c123bc wp-block-paragraph\">Das Kopieren von Objekten ist ein grundlegendes Konzept in Python, dessen Missverst\u00e4ndnis oft zu schwer auffindbaren Fehlern f\u00fchrt. Wenn Sie ein Objekt \u00e4ndern und sich unerwartet ein anderes ebenfalls \u00e4ndert, liegt das Problem h\u00f6chstwahrscheinlich in der Art und Weise, wie es kopiert wurde. Lassen Sie uns dieses Thema ein f\u00fcr alle Mal kl\u00e4ren.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>\ud83d\udd0e Warum ist das Kopieren von Objekten \u00fcberhaupt wichtig?<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">In Python sind Variablen keine &#8222;Boxen&#8220;, die Daten enthalten, sondern eher &#8222;Etiketten&#8220; oder Referenzen (Verweise), die auf Objekte im Speicher zeigen. Wenn Sie eine einfache Zuweisung durchf\u00fchren, wie hier:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">liste_a = &#091;1, 2, 3]\nliste_b = liste_a<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Erstellen Sie keine neue Liste. Sie erstellen lediglich eine weitere Referenz (<code class=\"\" data-line=\"\">liste_b<\/code>), die auf genau dasselbe Listenobjekt zeigt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 <strong>Jede \u00c4nderung an <code class=\"\" data-line=\"\">liste_a<\/code> spiegelt sich sofort in <code class=\"\" data-line=\"\">liste_b<\/code> wider (und umgekehrt), weil es sich um dasselbe Objekt handelt.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Analogie:<\/strong> Stellen Sie sich vor, Sie haben ein Google-Dokument. Wenn Sie einem Freund einen Link dazu senden, wird er Ihr Originaldokument bearbeiten. Das ist eine Zuweisung. Wenn Sie jedoch &#8222;Datei&#8220; \u2192 &#8222;Kopie erstellen&#8220; w\u00e4hlen, wird ein v\u00f6llig unabh\u00e4ngiges Dokument erstellt. Das <code class=\"\" data-line=\"\">copy<\/code>-Modul in Python existiert genau daf\u00fcr, um solche unabh\u00e4ngigen Kopien zu erstellen.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>\u2699\ufe0f Zwei Arten des Kopierens<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Das <code class=\"\" data-line=\"\">copy<\/code>-Modul stellt zwei Schl\u00fcsselfunktionen zur Verf\u00fcgung:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code class=\"\" data-line=\"\">copy.copy()<\/code> \u2014 erstellt eine <strong>oberfl\u00e4chliche Kopie<\/strong> (shallow copy).<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">copy.deepcopy()<\/code> \u2014 erstellt eine <strong>tiefe Kopie<\/strong> (deep copy).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Der Hauptunterschied zwischen ihnen liegt darin, wie sie mit verschachtelten Objekten umgehen (wie Listen in Listen oder Dictionaries in Dictionaries).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>\ud83d\udfe6 Oberfl\u00e4chliche Kopie (<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> erstellt ein neues Container-Objekt auf der obersten Ebene, aber anstatt die verschachtelten Objekte zu kopieren, f\u00fcgt es nur Referenzen auf die Originalobjekte in den neuen Container ein.<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">import copy\n\noriginal_liste = &#091;1, 2, &#091;3, 4]]\nflache_kopie = copy.copy(original_liste)\n\n# \u00c4ndern der verschachtelten Liste im Original\noriginal_liste&#091;2]&#091;0] = 99\n\nprint(f&quot;Original: {original_liste}&quot;)    # Ausgabe: Original: &#091;1, 2, &#091;99, 4]]\nprint(f&quot;Flache Kopie: {flache_kopie}&quot;) # Ausgabe: Flache Kopie: &#091;1, 2, &#091;99, 4]]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wie Sie sehen, hat die \u00c4nderung der verschachtelten Liste sowohl das Original als auch die Kopie beeinflusst, da sie sich diese verschachtelte Liste teilen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>ASCII-Diagramm:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">original_liste \u2192 &#091; 1, 2, \u2500\u2500\u2500\u25ba innere_liste ]\nflache_kopie   \u2192 &#091; 1, 2, \u2500\u2500\u2500\u25ba innere_liste ]\n                             innere_liste   \u2192 &#091; 99, 4 ]<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>\ud83d\udfe9 Tiefe Kopie (<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> l\u00f6st das Problem der geteilten Referenzen. Diese Funktion durchl\u00e4uft rekursiv das gesamte Objekt und erstellt vollst\u00e4ndige, unabh\u00e4ngige Kopien von allem, was sie findet, einschlie\u00dflich aller verschachtelten Objekte.<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">import copy\n\noriginal_liste = &#091;1, 2, &#091;3, 4]]\ntiefe_kopie = copy.deepcopy(original_liste)\n\n# \u00c4ndern der verschachtelten Liste im Original\noriginal_liste&#091;2]&#091;0] = 99\n\nprint(f&quot;Original: {original_liste}&quot;) # Ausgabe: Original: &#091;1, 2, &#091;99, 4]]\nprint(f&quot;Tiefe Kopie: {tiefe_kopie}&quot;)     # Ausgabe: Tiefe Kopie: &#091;1, 2, &#091;3, 4]]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt ist die <code class=\"\" data-line=\"\">tiefe_kopie<\/code> vollst\u00e4ndig unabh\u00e4ngig.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>ASCII-Diagramm:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">original_liste \u2192 &#091; 1, 2, \u2500\u2500\u2500\u25ba liste_a ]\ntiefe_kopie    \u2192 &#091; 1, 2, \u2500\u2500\u2500\u25ba liste_b ]\n                            liste_a   \u2192 &#091; 99, 4 ]\n                            liste_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 class=\"wp-block-heading\"><strong>\ud83d\udcd1 Spickzettel: <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\">Objekttyp<\/th><th class=\"has-text-align-left\" data-align=\"left\">Beispiel<\/th><th class=\"has-text-align-left\" data-align=\"left\"><code class=\"\" data-line=\"\">copy.copy()<\/code> (oberfl\u00e4chlich)<\/th><th class=\"has-text-align-left\" data-align=\"left\"><code class=\"\" data-line=\"\">copy.deepcopy()<\/code> (tief)<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>list<\/strong> (Liste)<\/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\">Neue Liste, aber die verschachtelte Liste <code class=\"\" data-line=\"\">[3, 4]<\/code> ist <strong>geteilt<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Eine vollst\u00e4ndig unabh\u00e4ngige Kopie; die verschachtelte Liste wird ebenfalls kopiert<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>dict<\/strong> (Dictionary)<\/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\">Neues Dictionary, aber das verschachtelte <code class=\"\" data-line=\"\">{&quot;c&quot;: 2}<\/code> ist <strong>geteilt<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Ein unabh\u00e4ngiges Dictionary und alle verschachtelten Dictionaries<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>set<\/strong> (Menge)<\/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\">Neue Menge; verschachtelte ver\u00e4nderbare Elemente w\u00e4ren <strong>geteilt<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Neue Menge; alle verschachtelten Elemente werden rekursiv kopiert<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>tuple<\/strong> (Tupel)<\/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\">Gibt dasselbe Tupel zur\u00fcck, aber die verschachtelte Liste ist <strong>geteilt<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Ein neues Tupel mit einer <strong>Kopie<\/strong> der verschachtelten Liste<\/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;hallo&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\">Gibt dasselbe Objekt zur\u00fcck (sie sind unver\u00e4nderlich, Kopieren ist unn\u00f6tig)<\/td><td class=\"has-text-align-left\" data-align=\"left\">Dasselbe wie bei der oberfl\u00e4chlichen Kopie<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Benutzerdefinierte Klasse<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code class=\"\" data-line=\"\">Knoten(1, Knoten(2))<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Neues Objekt auf oberster Ebene; verschachtelte Objekte sind <strong>geteilt<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Eine vollst\u00e4ndig unabh\u00e4ngige Kopie des Objekts und aller verschachtelten Objekte<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Objekt mit <code class=\"\" data-line=\"\">__slots__<\/code><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Eine Klasse mit <code class=\"\" data-line=\"\">__slots__<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Nur das Objekt der obersten Ebene wird kopiert<\/td><td class=\"has-text-align-left\" data-align=\"left\">Alle verschachtelten Objekte werden kopiert, wenn sie das Kopieren unterst\u00fctzen<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Datei \/ Socket \/ Stream<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code class=\"\" data-line=\"\">open(&quot;datei.txt&quot;)<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>Fehler<\/strong> (nicht kopierbares Objekt)<\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>Fehler<\/strong> (nicht kopierbares Objekt)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>\ud83e\uddea Live-Beispiele zur Tabelle<\/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)} # Mengen k\u00f6nnen nur unver\u00e4nderliche Typen enthalten\nb = copy.copy(a)\nc = copy.deepcopy(a)\nprint(b == c) # True (aber es sind zwei unabh\u00e4ngige Objekte im Speicher)<\/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=\"\">\nimport copy\na = (1, 2, &#091;3, 4]) # Das Tupel ist unver\u00e4nderlich, sein Listenelement jedoch nicht\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\"><strong>\ud83d\udccc Benutzerdefinierte Klasse<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">\nimport copy\nclass Knoten:\ndef &lt;strong&gt;init&lt;\/strong&gt;(self, wert, kind=None):\nself.wert = wert\nself.kind = kind\na = Knoten(1, Knoten(2))\nb = copy.copy(a)\nc = copy.deepcopy(a)\na.kind.wert = 99\nprint(f&quot;copy: {b.kind.wert}&quot;) # 99\nprint(f&quot;deepcopy: {c.kind.wert}&quot;) # 2<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br><strong>\ud83d\udccc Anpassen des Verhaltens: `__copy__` und `__deepcopy__`<\/strong><br>Sie k\u00f6nnen steuern, wie Ihre eigenen Objekte kopiert werden, indem Sie spezielle Methoden in ihrer Klasse definieren.<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">\nimport copy\nclass EigeneKlasse:\ndef &lt;strong&gt;init&lt;\/strong&gt;(self, x):\nself.x = x\ndef &lt;strong&gt;copy&lt;\/strong&gt;(self):\nprint(&quot;Aufruf von &lt;strong&gt;copy&lt;\/strong&gt;!&quot;)\n# Gibt eine neue Instanz zur\u00fcck, aber mit derselben Referenz auf interne Daten\nreturn EigeneKlasse(self.x)\ndef &lt;strong&gt;deepcopy&lt;\/strong&gt;(self, memo):\n# memo ist ein Dictionary, um bereits kopierte Objekte zu verfolgen (verhindert Rekursion)\nprint(&quot;Aufruf von &lt;strong&gt;deepcopy&lt;\/strong&gt;!&quot;)\n# Erstellt eine komplett neue Kopie, einschlie\u00dflich der verschachtelten Daten\nreturn EigeneKlasse(copy.deepcopy(self.x, memo))\nobj = EigeneKlasse(&#091;1, 2])\nc1 = copy.copy(obj) # Ausgabe: Aufruf von &lt;strong&gt;copy&lt;\/strong&gt;!\nc2 = copy.deepcopy(obj) # Ausgabe: Aufruf von &lt;strong&gt;deepcopy&lt;\/strong&gt;!\n```<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>\u26a1 Leistung und Fallstricke<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Geschwindigkeit:<\/strong> <code class=\"\" data-line=\"\">copy.copy()<\/code> ist erheblich schneller, da es nicht die gesamte Datenstruktur rekursiv durchl\u00e4uft. <code class=\"\" data-line=\"\">copy.deepcopy()<\/code> kann bei gro\u00dfen und tief verschachtelten Objekten sehr langsam sein.<\/li>\n\n\n\n<li><strong>Nicht kopierbare Objekte:<\/strong> Systemressourcen wie ge\u00f6ffnete Dateien, Sockets oder Streams k\u00f6nnen nicht kopiert werden. Der Versuch, dies zu tun, f\u00fchrt zu einem Fehler.<\/li>\n\n\n\n<li><strong>Zyklische Referenzen:<\/strong> <code class=\"\" data-line=\"\">deepcopy<\/code> ist intelligent genug, um mit zyklischen Referenzen umzugehen (wenn Objekt <code class=\"\" data-line=\"\">A<\/code> auf <code class=\"\" data-line=\"\">B<\/code> verweist und <code class=\"\" data-line=\"\">B<\/code> zur\u00fcck auf <code class=\"\" data-line=\"\">A<\/code>), ohne in eine Endlosschleife zu geraten.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Wann was verwenden: Die wichtigsten Regeln<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Verwenden Sie eine oberfl\u00e4chliche Kopie (<code class=\"\" data-line=\"\">copy.copy()<\/code>)<\/strong>, wenn Ihr Objekt nur unver\u00e4nderliche Daten enth\u00e4lt oder wenn Sie absichtlich m\u00f6chten, dass die Kopie und das Original verschachtelte Objekte teilen. Dies ist schnell und effizient.<\/li>\n\n\n\n<li><strong>Verwenden Sie eine tiefe Kopie (<code class=\"\" data-line=\"\">copy.deepcopy()<\/code>)<\/strong>, wenn Sie eine vollst\u00e4ndige, 100% unabh\u00e4ngige Kopie des Originals ben\u00f6tigen, insbesondere bei der Arbeit mit komplexen Datenstrukturen (Listen, Dictionaries, Klasseninstanzen).<\/li>\n\n\n\n<li><strong>F\u00fcr unver\u00e4nderliche Objekte<\/strong> (Zahlen, Zeichenketten, Tupel ohne ver\u00e4nderbare Elemente) ist das Kopieren im Allgemeinen sinnlos \u2013 Python optimiert deren Verwendung ohnehin.<\/li>\n\n\n\n<li><strong>Denken Sie daran, dass Sie den Prozess<\/strong> mit <code class=\"\" data-line=\"\">__copy__<\/code> und <code class=\"\" data-line=\"\">__deepcopy__<\/code> anpassen k\u00f6nnen, um die volle Kontrolle zu haben.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Das Kopieren von Objekten ist ein grundlegendes Konzept in Python, dessen Missverst\u00e4ndnis oft zu schwer auffindbaren Fehlern f\u00fchrt. Wenn Sie ein Objekt \u00e4ndern und sich unerwartet ein anderes ebenfalls \u00e4ndert, liegt das Problem h\u00f6chstwahrscheinlich in der Art und Weise, wie es kopiert wurde. Lassen Sie uns dieses Thema ein f\u00fcr alle Mal kl\u00e4ren.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"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":[],"tags":[],"class_list":["post-3112","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/posts\/3112","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/comments?post=3112"}],"version-history":[{"count":0,"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/posts\/3112\/revisions"}],"wp:attachment":[{"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/media?parent=3112"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/categories?post=3112"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/tags?post=3112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}