RubyのStruct

RubyのStruct

irb(main):018:0> FooBar = Struct.new(:foo, :bar)
=> FooBar
irb(main):019:0> FooBar.new(1, 2)
=> #<struct FooBar foo=1, bar=2>
irb(main):020:0> _.foo
=> 1

へえー、これは便利。

Pythonで作ってみた。

>>> def Struct(*keys):
	class _Struct(object):
	    def __init__(self, *values):
		self.__dict__.update(zip(keys, values))
	return _Struct

	
>>> Struct("foo", "bar")
<class '__main__._Struct'>
>>> FooBar = Struct("foo", "bar")
>>> FooBar(1, 2)
<__main__._Struct object at 0x01494E90>
>>> _.foo
1

できたできた。こういうものを入れておくマイモジュールとか作ろうかなぁ。