dato che di solito uso ipython per giocare con il codice in fase di sviluppo, mi imbatto nella situazione in cui cambio il codice di una classe dopo che l'ho importata in ipython. Voglio ricaricare la nuova definizione di classe senza riavviare ipython. Il problema è che la funzione di ricarica in ipython funziona solo con i moduli.Come posso ricaricare una definizione di classe in ipython
ho cercato la soluzione a questo problema e trovato un thread precedente: how to reload a Class in python shell?
Tuttavia, ho seguito gli approcci lì, ma non ha funzionato. Penso che il motivo per cui funziona in quel thread è che il nome della classe è lo stesso con il nome del modulo, quindi può essere trovato in sys.modules e quindi può essere cancellato. Quando il nome della classe è diverso dal nome del modulo, tale approccio non può funzionare.
Mi chiedo se esiste una soluzione a questo problema. Grazie!
Condivide l'autoreload funziona solo per gli oggetti di classe creati dopo l'autoreload viene richiamato? Ho avuto un oggetto di classe che la definizione era stata cambiata. Ho provato il caricamento automatico ma non ha funzionato per quell'oggetto di classe. Ma quando ho creato un altro oggetto di classe dopo aver richiamato il caricamento automatico, il nuovo oggetto di classe può essere aggiornato con il codice che cambia costantemente. – Wen
Non sono sicuro dei dettagli, ma potrebbe funzionare solo per le cose create dopo l'abilitazione automatica. –