J'ai une classe qui entoure python deque
de collections
. Quand je vais créer un deque x=deque()
, et je veux faire référence à la première variable ....Structure de données Python d'indexation personnalisée
In[78]: x[0]
Out[78]: 0
Ma question est de savoir comment utiliser le []
pour le référencement dans l'emballage exemple suivant
class deque_wrapper:
def __init__(self):
self.data_structure = deque()
def newCustomAddon(x):
return len(self.data_structure)
def __repr__(self):
return repr(self.data_structure)
à savoir, continue d'exemple ci-dessus:
In[75]: x[0]
Out[76]: TypeError: 'deque_wrapper' object does not support indexing
Je souhaite personnaliser mon propre référencement, est-ce possible?
Au lieu de demander [un séparé question pour chaque méthode nécessaire pour émuler un 'deque'] (http://stackoverflow.com/questions/25716437/custom-python-data-structure), vous devriez parcourir le [Data model] (https: //docs.python .org/3/reference/datamodel.html # special-method-names) section des docs (à laquelle vous avez maintenant donné des liens dans les deux questions) Presque tout ce que vous demanderez probablement sera là – abarnert
Voir aussi ['collections.abc.MutableSequence'] (https://docs.python.org/3/libr ary/collections.abc.html). Si vous en héritez et que vous implémentez les méthodes listées dans le tableau, cela vous donnera automatiquement toutes les autres méthodes que 'deque',' list' et les types similaires ont. (Si vous êtes en Python 2.x, ça s'appelle 'collections.MutableSequence', pas' abc' ... mais si vous êtes en 2.x, vous ne devriez pas déclarer une classe sans bases comme celle-ci, comme quelqu'un sinon expliqué sur votre question précédente.) – abarnert