Cosa c'è di più pitonico - sottoclasse dict o creazione di funzioni esterne per manipolarli?

5

Dire che ho un dizionario che contiene classi complesse che devono essere caricate e scaricate in un modo speciale. (Non particolarmente speciale, appena al di fuori dei limiti di questa domanda.) Devo creare una sottoclasse della dict incorporata in questo modo:

class ExampleClass(dict):
    def __str__(self):
        return 'ExampleClass; '+dict.__str__(self)

    @classmethod
    def loads(cls, string):
        <load object from string here>

    def dumps(self):
        <dump object here>

O fai qualcosa di simile a questo:

def load_special_structure(string):
    <load object from code here>

def dump_special_structure(obj):
    <dump object here>

Questa è tutta la funzionalità extra di cui ho bisogno. Non è troppo sdolcinato usare un metodo speciale importato per scaricarlo e caricarlo, ma nemmeno la sottoclasse di un dizionario. Dal punto di vista dell'utilizzo, è davvero utile poter importare quella classe, caricarla da una stringa e usarla come un dizionario.

    
posta noɥʇʎԀʎzɐɹƆ 10.07.2015 - 19:21
fonte

1 risposta

4

In generale, in Python preferisco usare le funzioni rispetto alla sottoclasse delle classi interne. Alla fine, se scrivi il tuo metodo String -> dict , finisci a lavorare con una dict , pura come neve guidata. Metti semplicemente le tue funzioni in un modulo ragionevole e importale solo dove necessario; questo ti incoraggerà anche non a importare le funzioni ovunque, il che ti aiuterà a mantenere l'IO separato dalla tua logica.

    
risposta data 10.07.2015 - 19:40
fonte

Leggi altre domande sui tag