2015-05-31 12 views
5

È possibile implementare il metodo __str__(self) per restituire una stringa. Esiste una controparte __list__(self)? (__list__ non funziona!) Is .toList() la strada da percorrere?C'è un modo per definire il metodo list (obj) su una classe definita dall'utente in python?

+0

Non esiste un metodo magico chiamato "__list__". Quindi, potresti dover convivere con un metodo di istanza. – thefourtheye

+2

Qual è il motivo per cui non si emula il tipo di contenitore direttamente come suggerito nella [documentazione] (https://docs.python.org/3.3/reference/datamodel.html#emulating-container-types)? – dhke

+0

Puoi pubblicare il tuo modello e che cosa stai cercando di fare esattamente? – IanAuld

risposta

15

Non esiste una controparte diretta, ma lo list() viene implementato iterando sull'argomento. Quindi implementare sia the iterator protocol (__iter__()) o bound indexing (__len__() e __getitem__()).

+1

più il fatto che questo lo rende conforme anche a tutto il resto del linguaggio. – dhke

Problemi correlati