У меня есть класс, который переопределяет self.new и вызывает super в нем, но класс не получается из класса antoher. Так что же такое призыв?ruby: вызов super без родительского класса
class Test
attr_reader :blatt
def self.new(blatt, quellformat, &block)
begin
# why can't I call initialize(blatt,quellformat) here?
# when I try this, it only prints "wrong # of arguments(2 for 1)"
a = super(blatt, quellformat) # but this works...
# some code
a
end
end
def initialize(blatt, quellformat)
@name = blatt.blattname
@datei = blatt.datei
@blatt = blatt
@qu = quellformat
end
end
Что такое 'begin'-'end' в' self.new' для? –
Не переопределяйте 'self.new'. Это ужасная, страшная идея. Вместо этого используйте 'initialize'. –
Помимо того, что вы _must not_ переопределите 'self.new', вызов' initialize' вызовет функцию класса, а не экземпляр. Похоже, вы абсолютно не понимаете, что делаете. – mudasobwa