Accessor-Methoden bieten eine bequeme Möglichkeit, Daten aus komplexen Datenstrukturen abzurufen und ermöglichen eine intuitive objektorientierte Navigation. Den nativen Wörterbüchern von Python fehlt diese Funktionalität jedoch von Natur aus.
Problem: Wie können wir ein verschachteltes Python-Wörterbuch in eine objektähnliche Struktur umwandeln und so den attributbasierten Datenabruf ermöglichen?
Antwort:
Verwenden von Namedtuples (Python 2.6 und höher)
Für neuere Versionen von Python (2.6 und höher) bieten Namedtuples eine elegante Lösung. Diese stellen unveränderliche benutzerdefinierte Datentypen mit benannten Feldern dar:
from collections import namedtuple MyStruct = namedtuple('MyStruct', 'a b d') s = MyStruct(a=1, b={'c': 2}, d=['hi']) print(s.a, s.b['c'], s.d[0]) # Output: 1 2 hi
Verwenden einer benutzerdefinierten Strukturklasse
Alternativ können Sie eine benutzerdefinierte Strukturklasse erstellen, die das Verhalten von nachahmt Objekte:
class Struct: def __init__(self, **entries): self.__dict__.update(entries) args = {'a': 1, 'b': 2} s = Struct(**args) print(s.a, s.b) # Output: 1 2
Das obige ist der detaillierte Inhalt vonWie kann ich ein verschachteltes Python-Wörterbuch in eine objektähnliche Struktur für den attributbasierten Datenabruf konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!