Je ne sais pas si c'est même possible, mais mon but est de créer une classe abstraite de base qui utilise un énumérateur en tant que sous-classe.Comment instancier et référencer une sous-classe enum abstraite en utilisant Python 3.4+?
Voici le code jusqu'à présent et ce qui fonctionne/ne fonctionne pas. J'aimerais pouvoir référencer la "classe Colors (Enum)" dans ma classe "IdealUse". Des pensées sur ce qui doit être changé?
BaseClass.py
from abc import ABCMeta, abstractmethod
from enum import Enum
class Base(metaclass=ABCMeta):
default_color = 'yellow'
@abstractmethod
def get_a(self):
pass
class Colors(Enum):
blue = 1
green = 2
red = 3
Base.register(Colors)
IdealUse.py
from abstractbase import Base
class IdealUse(Base):
def __init__(self):
self.value_of_a = self.get_a() # this works
self.ideal_color = self.default_color # this works
self.color_of_sky = self.Colors(1) # does not work
def get_a(self):
return 'working'
'self.Colors' - qu'est-ce que l'évaluation à? Astuce 1: il n'y a pas de méthode/attribut 'Couleurs'. Astuce 2: [la documentation] (https://docs.python.org/3/library/abc.html) ne fait aucune allusion à ce comportement attendu. – user2864740
Il semble que vous ne sachiez pas clairement ce que signifie "sous-classe". "X est une sous-classe de Y" signifie "X est une sorte de Y" et non "la classe Y a un attribut X". – user2357112
Grâce aux utilisateurs qui m'ont répondu, j'ai passé quelques heures à faire des recherches et à revoir la documentation. Ce qui veut dire que j'aurais probablement dû faire une pause avant de poster. Vraiment, il a fallu des commentaires d'autres pour avoir une meilleure perspective de comment décrire ce que je fais. Je pense que peut-être la bonne question et les bons termes seraient - comment faire d'un recenseur un membre d'une classe abstraite? Et vraiment, ça pourrait être ... comment faire quoi que ce soit en tant que membre d'une classe? En d'autres termes, je pensais à tout. J'ai posté le code de travail comme réponse. Peut-être que cela aidera d'autres débutants qui ont une paralysie de l'analyse. – mjfjones