Donc, si j'ai une classe comme:Est-il possible de créer une classe qui représente un autre type en Python, lorsqu'elle est référencée directement?
CustomVal
Je veux être en mesure de représenter une valeur littérale, donc comme la mise dans le constructeur:
val = CustomVal (5)
val.SomeDefaultIntMethod
Fondamentalement, je veux le CustomVal pour représenter tout ce qui est spécifié dans le constructeur.
Je ne parle pas de méthodes personnalisées qui savent comment gérer CustomVal, mais plutôt d'en faire une autre valeur dont j'ai besoin.
Est-ce possible? Btw 5 est juste un exemple, en réalité, c'est un type COM personnalisé que je veux facilement citer. Donc en référençant CustomVal, j'aurai accès à la fonctionnalité int (pour 5), ou à la fonctionnalité de l'objet que je veux représenter (pour COM).
Donc, si l'objet COM est RasterizedImage, alors je vais avoir accès à ses méthodes directement:
CustomVal.Raster() ...
EDIT: Voici ce que je veux dire: Je ne veux pas accéder comme un attribut, mais le lui-même l'objet:
CustomVal
au lieu de:
CustomVal.SomeAttribute
la raison pour laquelle je veux que c'est parce que, la L'objet COM est trop impliqué pour être initialisé et, de cette façon, il ressemblera à l'implémentation interne d'origine de l'application.
Je pense qu'il veut que le nouvel objet implémente exactement la même interface de l'objet qu'il passe à son constructeur. Une sorte de modèle de décorateur de style GoF ... –
S'il implémente la même interface, alors - eh bien - n'est-ce pas juste l'objet original? Pourquoi l'emballer? Il suffit de l'utiliser. –
@ S.Lott Ce n'est pas nécessairement l'objet original. De wikipedia: Dans la programmation orientée objet, le motif décorateur est un motif de conception qui permet d'ajouter dynamiquement un nouveau comportement à une classe existante. vérifier: http://en.wikipedia.org/wiki/Decorator_pattern – Martin