如何在Ruby中为子类的另一个类的initialize参数赋值

时间:2010-08-06 06:51:42

标签: ruby oop

如何在Ruby

中为另一个类的initialize参数赋值
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一样?

2 个答案:

答案 0 :(得分:2)

在这种特定情况下,您可以将@p_str=放入Ubac#initialize。但是,您可以使用Ubacinitialize拨打ReqQuote的{​​{1}},例如

super

这通常是一种很好的做法,因为这意味着添加到class ReqQuote < Ubac def initialize(p_code) super(get_data(some_symbol)) @code=p_code end ... 的任何其他初始化代码也会在您创建Ubac时执行。

答案 1 :(得分:0)

你写@p_str = get_data(some_symbol)