Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Stefan Behnel Newsgroups: de.comp.lang.python Subject: =?utf-8?q?=5BPython-de=5D_Re=3A_dataclass=3A_Unterschied_zu_automatischer?= Date: Fri, 13 May 2022 18:03:44 +0200 Lines: 19 Message-ID: <7f5bded9-7c18-feaa-0b76-834573040e80@behnel.de> References: <013a3cfd0c91a73055b920f9be9f45ad@posteo.de> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: news.uni-berlin.de mj0XRP7ALzKNIOnmKgnpAgxnHCtajKs02VVnxhEDibrw== Authentication-Results: mail.python.org; dkim=pass reason="2048-bit key; unprotected key" header.d=behnel.de header.i=@behnel.de header.b=g7plHpzR; dkim-adsp=pass; dkim-atps=neutral DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1652457825; s=strato-dkim-0002; d=behnel.de; h=In-Reply-To:From:References:To:Subject:Date:Message-ID:Cc:Date:From: Subject:Sender; bh=4VCtMb32jN2gZsCfr480pGuFxRZuw6DVSYxyJC0rcQ0=; b=g7plHpzR2OUx61jMtzHbj92CVV2ki71n10dxQdIJC6lcfSlLlOrukyOkoq0rtznWjU oYyWAQvXLHkSJafA5rxoxpBiUNIBPBzv1TFQ1cX0Zd6Q69K3yC5WOqz80FqA1GqnnPL8 NsOvM0KGCf3FFSghS6eMqcgG7j+esgJeoER5Ve+qAfUSkSsU7rPJts2H9jUyt33m8Ga+ t/GvlEwmsmVvsurm/SnVwAzsZlhUCUhcVOhxPSaXERsD4TE0BJK3fNBR7k3GdV2KTkY2 4qXrO5/43qPnTh2invM5gyFo1wHN74T5Fc/dD7aBDzWnkoqyHJcOkFUNAeHqeUXncMq/ I8ng== Authentication-Results: strato.com; dkim=none X-RZG-AUTH: ":E1MMdFW4b++AXZOTwA41DOYM0Dv9LNWvavC/fJZ6Wfgmp/Lh1ANWCRaaq2R1hHsoZh74ArYRjqKI/uFy8MiESaCbIUabBYqbwz8V8N2imn1Rks0N" X-RZG-CLASS-ID: mo00 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Content-Language: de-DE In-Reply-To: <013a3cfd0c91a73055b920f9be9f45ad@posteo.de> Message-ID-Hash: KUDLM4PCHYLWCNACVYLUHRAIOMESOP3T X-Message-ID-Hash: KUDLM4PCHYLWCNACVYLUHRAIOMESOP3T X-MailFrom: python-de@behnel.de X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-python-de.python.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.6b1 Precedence: list List-Id: Die Deutsche Python Mailingliste Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Xref: csiph.com de.comp.lang.python:5820 c.buhtz@posteo.jp schrieb am 13.05.22 um 12:23: > Eine Konsequenz scheint zu sein, dass ich eine automatisch erzeugte > dataclass nicht pickeln kann. Ich bekomme den Fehler > "_pickle.PicklingError: Can't pickle : attribute lookup X > on types failed" > > Wenn ich aber den Modulnamen ändere > x.__module__ = '__main__' > geht es auch mit Pickle. Ja, das ist auch zu erwarten. Pickle muss die Klasse ja irgendwo her bekommen, um beim Auspickeln ein Objekt davon erzeugen zu können. Dazu benötigt es den Package/Modul-Pfad. Das selbe Problem würdest du mit einem namedtuple haben, mit lokal innerhalb einer Funktion erzeugten Klassen, oder anderen Datentypen, bei denen nicht klar ist, woher sie kommen und wie sie zugänglich sind. Stefan