Ruby 如何在类内部(但在任何方法外部)调用attr_访问器attribtue?
我正在为我的类使用HTTParty,我想使用默认的_params方法。但是,我还希望能够在使用initialize实例化类时设置属性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
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_参数实际上与这个问题无关。我只需要知道如何在类中访问属性,但在任何方法之外。