Ruby元编程问题
当我从类方法内部调用Ruby元编程问题,ruby,metaprogramming,Ruby,Metaprogramming,当我从类方法内部调用self.class.instance\u variable\u set(@var,…)时,该变量实际存储在哪里?是在课堂上吗?在那个类的实例上?我似乎找不到以下任何一项: e = Example.new e.instance_variables e.class.class_variables 我甚至尝试过使用(class当您在类定义中调用use\u template时,self就是类Example。当您调用self.class时,它就是Example.class或clas
self.class.instance\u variable\u set(@var,…)
时,该变量实际存储在哪里?是在课堂上吗?在那个类的实例上?我似乎找不到以下任何一项:
e = Example.new
e.instance_variables
e.class.class_variables
我甚至尝试过使用
(class当您在类定义中调用use\u template
时,self
就是类Example
。当您调用self.class
时,它就是Example.class
或class
。您将实例变量定义为类的类
class Class
p @_template
end
# prints :contact_form
你可能应该只使用self
而不是self.class
别忘了类是对象。它们只是对象,有class
的class
。太棒了,现在说得通了。我必须记住,这都是关于self
的上下文
class Class
p @_template
end
# prints :contact_form