Ruby 如何在类内部(但在任何方法外部)调用attr_访问器attribtue?

Ruby 如何在类内部(但在任何方法外部)调用attr_访问器attribtue?,ruby,attributes,Ruby,Attributes,我正在为我的类使用HTTParty,我想使用默认的_params方法。但是,我还希望能够在使用initialize实例化类时设置属性 class MyClass include HTTParty attr_accessor :param1, :param2 # This or @param1 doesn't work. default_params :param1 => self.param1, :param2 => self.param2 def init

我正在为我的类使用HTTParty,我想使用默认的_params方法。但是,我还希望能够在使用initialize实例化类时设置属性

class MyClass
  include HTTParty

  attr_accessor :param1, :param2

  # This or @param1 doesn't work.
  default_params :param1 => self.param1, :param2 => self.param2

  def initialize(param1, param2)
    self.param1 = param1
    self.param2 = param2
  end
end
这样我就可以了

m = MyClass.new('hey', 'hello')
而不是

m = MyClass.new
m.param1 = 'hey'
m.param2 = 'hello'

但是我想使用带有默认参数的属性。我怎样才能做到这一点呢?

Ruby在方法声明中有这样的语法

class MyClass
  attr_reader :param1, :param2
  def initialize(param1 = "default", param2 = 5) 
    @param1, @param2 = param1, param2
  end
end

MyClass.new.param2
# => 5

我从未使用过HTTParty,我也不确定
default\u params
方法的作用,所以我不知道这是否是您要找的方法。

看看Github repo中的
initialize
方法。我以前没有使用过HTTParty,但这看起来像是您想要的


另外,从您的示例来看,您似乎混淆了类方法和实例变量。

谢谢,HTTParty和default_参数实际上与这个问题无关。我只需要知道如何在类中访问属性,但在任何方法之外。