From: list-bounce / example.com [mailto:list-bounce / example.com] On Behalf Of Li Chen Sent: Sunday, December 17, 2006 5:17 PM > >I try to understand the concept of variable scopes. I define two classes >with very similar structures. But Ruby complains class Y only. Any >comments? > >Thanks, > >Li > > >class X > def initialize(name,artist,duration) > @name=name > @artist=artist > @duration=duration > end > puts "This is the name"" #{name}" >end > >test_x=X.new(1,2,3) >puts test_x.inspect > >>ruby variables1.rb >This is the name X >#<X:0x28ae894 @artist=2, @name=1, @duration=3> >>Exit code: 0 > > >class Y > def initialize(arg1,arg2,arg3) > @arg1=arg1 > @arg2=arg2 > @arg3=arg3 > end > puts "This is arg1"" #{arg1}" >end > > test_y=Y.new(1,2,3) > puts test_y.inspect > >>ruby variables2.rb >variables2.rb:15: undefined local variable or method `arg1' for Y:Class >(NameError) >>Exit code: 1 > In the first case, "name" is threated as "X.name" (method "name" of object "class X"). V.