Bonjour,
L = []
class Foo
def self.inherited(subclass)
L << subclass.new
end
end
class Bar < Foo
def initialize
p "ok"
end
end
p L # [#<Bar:0x000000011445c8>]
Est ce normal que la méthode initialize de Bar ne soit pas exécutée dans ce bout de code?
J'ai pourtant bien mon instance de Bar dans L.
# De mémoire ...
Posté par totof2000 . Évalué à 2.
[^] # Re: De mémoire ...
Posté par totof2000 . Évalué à 2.
Désolé, j'ai mal lu la question.
Oubluiez mon commentaire.
# Oui, c'est normal ;-)
Posté par PhilIcare . Évalué à 1.
inherited est appelé sur "class Bar < Foo", donc à l'instanciation de la class (sic), avant qu'elle soit définie :
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.