как присвоить значение другому классу, инициализируют параметр от дочернего класса в Ruby

Как я присваиваю значение другому классу, инициализируют параметр в Ruby

class Ubac
  def initialize(p_str)
    @p_str=p_str
    (.....)
  end
  def method1
    (.....)
  end

end

class ReqQuote < Ubac
  def initialize(p_code)
     @code=p_code
     # here how do i initialize the @p_str to the value which is returned from the get_data method below.?
  end
  def get_data(symbol)
     (....) # fetch data
     data 
  end
  def methodx
    (.....)
  end


end

Здесь, как я инициализирую @p_str со значением, которое возвращено от get_data метод, как будто p_str был инициализирован от Ubac класс initialize?

1
задан mikej 6 August 2010 в 07:26
поделиться

2 ответа

В этом конкретном случае вы можете просто поместить @ p_str = в Ubac # initialize . Однако вы можете вызвать Ubac initialize из ReqQuote , используя super , например

class ReqQuote < Ubac
  def initialize(p_code)
     super(get_data(some_symbol))
     @code=p_code
  end
  ...

Обычно это хорошая практика, потому что это означает, что любой другой код инициализации, добавленный в Ubac , также будет выполнен при создании ReqQuote .

2
ответ дан 2 September 2019 в 22:22
поделиться

Вы пишете @p_str = get_data (some_symbol) .

0
ответ дан 2 September 2019 в 22:22
поделиться