Je voudrais pouvoir envelopper n'importe quel objet en Python. Ce qui suit ne semble pas possible, sauriez-vous pourquoi?Quelle est la meilleure façon pythonienne d'envelopper un objet?
class Wrapper:
def wrap(self, obj):
self = obj
a = list()
b = Wrapper().wrap(a)
# can't do b.append
Merci!
Note complémentaire, si votre on python 2.x est considéré comme une bonne pratique pour hériter de l'objet –
C'est parfaitement possible, mais cela ne fonctionne pas comme vous le pensez. :) Les variables Python ne sont pas des pointeurs, ce sont des noms. Lorsque vous définissez 'self = obj', vous dites simplement que le nom" self "pointe vers l'objet sur lequel le nom" obj "pointe également. Mais les noms sont locaux, ou il ne peut y avoir qu'un soi dans tout le programme, donc cela ne change rien. Et cela nous amène au commentaire suivant: Lorsque vous posez une question, expliquez toujours * pourquoi * vous faites ce que vous faites. Vous ne semblez pas vouloir envelopper l'objet, vous semblez vouloir le substituer. –
Pourquoi "envelopper" un objet? Les objets en Python n'ont jamais besoin de wrappers, car ils sont toujours complètement "compatibles" les uns avec les autres. Pouvez-vous nous donner une idée de ce que vous entendez par «enveloppe»? Et pourquoi? –