Dies wird jedoch im Vererbungsfall kompliziert. Aus der Diskussion zu diesem Thema haben wir entschieden, dass die beste Lösung, um dies zu beheben, erforderlich ist, dass entweder alle Felder oder Nullfeld überschrieben werden, wenn eine Klasse unterklassifiziert ist. Von django hoch geborgt, könnten wir so etwas wie das folgende unterstützen, um explizit Feldbestellungen zu erklären. Um das Erstellen von Feldern für komplexere Änderungen zu vereinfachen, könnte man Hilfsfunktionen hinzufügen: Unterstützung vor und nach Schlüsselwortargumenten für die Field-Klasse. Brute Force Weg für Dener, es sei denn, ich missverstanden die Anforderungen: Das bringt uns den größten Weg dorthin. Ich denke, das einzige, was wir brauchen, um die vollständige Kontrolle über die Feldreihenfolge zuzulassen, ist eine Möglichkeit, zu diktieren, wohin in den Feldern der vorherigen Klasse ein neues Feld gehen sollte, vorausgesetzt, sie wollen die Standardreihenfolge nicht verwenden. Zwei Möglichkeiten kommen mir in den Sinn, um damit umzugehen, und wir möchten vielleicht beides (oder eine andere bessere Idee) tun. Ich bin weniger scharf auf diesen Stil, weil die Bestellinformationen nicht semantisch in das Sedesfeld gehören. Die Field-Klasse kann eines der Schlüsselwortargumente vor oder nach dem eine Position angeben, an der das neue Feld in der Feldreihenfolge platziert werden soll. Werbemittel, Plakate, Schilder, Flyer oder Geschenke – alles im Kfz-Meister-Shop. Dieses kleine bisschen Wiederholung auf a und b in Serial2 scheint den Vorteil wert zu sein, leicht zu lesen/verstehen zu sein.
Wenn Serial2 ein häufiger Fall ist, würde ich gerne einige Beispiele aus dem wirklichen Leben sehen. . Meine Intuition ist, dass die Verwendung von attrs wahrscheinlich den Leistungsaufwand erhöht, so dass es sich lohnt zu bewerten, was dieser Overhead ist, weil diese Bibliothek einen Bedarf an hoher Leistung hat. docs.python.org/3/reference/datamodel.html#metaclass-example Der erste Schritt wäre, die Metaklasse eine Rlp zu erstellen. Serialisierbare Instanz mit der richtigen fields-Eigenschaft, und um die vorhandenen Interna von rlp zuzulassen. Serialisierbar, um die tatsächlichen Attributsetter und Getter aufzufüllen. Bei diesem Ansatz würde der Zugriff auf die Feldeigenschaften aus der Klasse wahrscheinlich zu einem AttributFehler führen, da sie erst nach der Klasseninstanziierung erstellt werden. Eine Option, die wir nicht berücksichtigt haben, ist, dass entweder alle Felder in Unterklassen oder gar keine überschrieben werden müssen. Ich habe das Hauptproblem aktualisiert, um den aktuellen Konsens darüber widerzuspiegeln, wie dies umgesetzt werden sollte. Wenn Sie daran interessiert sind, dieses Kopfgeld in Anspruch zu nehmen, legen Sie bitte hier einen Vorschlag zu diesem Thema vor und stellen Sie Fragen, die Sie haben, bevor Sie das Kopfgeld in Anspruch nehmen. Ich möchte vermeiden: Wollen Sie das Kopfgeld hier töten, um Ihr Geld zurückzufordern? es dauert nur 30 Sekunden…