È possibile avere un tipo mutabile che non è garbage collection?

1

Mi chiedo se una cosa del genere possa esistere. Può esserci un oggetto che è mutevole ma non contrassegnato come garbage collection (in particolare, tp_flags & Py_TPFLAGS_HAVE_GC)

Ho un oggetto simile a una struct in C ++ che sto scrivendo e vorrei sapere se tutti i suoi membri sono immutabili. Sto pensando di controllare il flag Py_TPFLAGS_HAVE_GC per determinare questo. Se tutti i membri sono immutabili, voglio accelerare la deep-copy facendo una copia più veloce, poiché so che i membri sono immutabili, quindi non dovrebbe passare attraverso una copia profonda e costosa.

È logico, o c'è qualcosa di mitico che mi farà saltare fuori dall'acqua qui.

    
posta ByteMe95 10.06.2014 - 00:31
fonte

1 risposta

0

Innanzitutto, qualsiasi numero di tipi creati da estensioni non può preoccuparsi di implementare GC, nonostante sia modificabile.

In secondo luogo, un tipo mutabile che non contiene altri oggetti non ha bisogno di implementare GC per evitare la creazione di cicli. Quindi non puoi supporre che lo faranno. Per un esempio specifico, vedi il tipo array.array .

In terzo luogo, solo perché un oggetto è immutabile non significa che non possa contenere un oggetto mutabile. Ad esempio, considera ([],) .

    
risposta data 10.06.2014 - 00:49
fonte

Leggi altre domande sui tag