ruby 实例 变量的讨论

因为时间原因, ruby的书没有读, 属于看着别人代码学习ruby的那种人。目前遇到一个关于实例变量的问题,想请教大家。先看代码
[code="ruby"]
class Test

attr_accessor :info

@info = 'who am i?'
@@info = 'who am i class?'

def change_info

@info = 'info changed'

end

def self.get_info

@info

end

def get_info
@info
end

def get_info2
@@info
end

def self.get_info2
@@info
end
end

a = Test.new

a.info = 'info1'

puts a.info

a.change_info

puts a.info

puts a.get_info
puts Test.get_info

puts a.class.get_info
puts a.get_info2
puts Test.get_info2
[/code]

运行结果:
[code="ruby"]
info1
info changed
info changed
who am i?
who am i?
who am i class?
who am i class?
[/code]
请问这个写在方法外面的@info是什么意思呢?应该不是实例变量但是也不是类变量

大家的意见呢?
[b]问题补充:[/b]
看了open2ye的回答,我想我的问题就是:
irb(main):066:0> Test2.instance_variables
=> ["@v"]
irb(main):067:0> Test2.new.instance_variables
=> []

这里Test2为什么会有instance_variables, instance是什么?如果Test2有instance variable为什么我产生了一个instance里面却又没有@v了呢?

因为在 Ruby 中, 类Test2 也是实例

详细请看

http://www.iteye.com/topic/200720

irb(main):063:0> class Test2
irb(main):064:1> @v = "hello"
irb(main):065:1> end
=> "hello"
irb(main):066:0> Test2.instance_variables
=> ["@v"]
irb(main):067:0> Test2.new.instance_variables
=> []

irb(main):068:0> class T3
irb(main):069:1> @@v = "12"
irb(main):070:1> end
=> "12"
irb(main):071:0> T3.instance_variables
=> []
irb(main):072:0> T3.class_variables
=> ["@@v"]