我有一個類重寫self.new並調用超類,但類不是從antoher類派生的。那麼電話到底是什麼?ruby:調用超級沒有父類
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
'self.new'中的'begin'-'end'是什麼? –
請勿重寫'self.new'。這是一個可怕的,可怕的想法。改用'initialize'。 –
除了_must not_ override'self.new'之外,調用'initialize'將會調用類的函數,而不是實例。這聽起來像你絕對不明白你在做什麼。 – mudasobwa