2012-01-25
PythonとRubyでのクラスの継承とか書き方の違いのようなもの
Ruby
Ruby その1
code
# -*- coding: utf-8 -*- class Dog def initialize name, age @name = name @age = age end def name @name end def age @age end end class Breed < Dog def initialize name, age, breed super name, age @breed = breed @introduce = nil end def breed @breed end def introduce() @introduce = "#{@name} #{@age}歳、#{@breed}です。" end end taro = Dog.new("タロ", 6) p taro p taro.name hachi = Breed.new("ハチ", 10, "秋田犬") p hachi p hachi.name p hachi.age p hachi.breed p p hachi.introduce()
execution result
#<Dog:0x007fcd5304c0e0 @name="タロ", @age=6> "タロ" #<Breed:0x007fcd5304bf50 @name="ハチ", @age=10, @breed="秋田犬", @introduce=nil> "ハチ" 10 "秋田犬" "" "ハチ 10歳、秋田犬です。"
Rubyその2
code
# -*- coding: utf-8 -*- class Dog attr_accessor :name, :age def initialize name, age @name = name @age = age end end class Breed < Dog attr_accessor :name, :age, :breed def initialize name, age, breed super name, age @breed = breed @introduce = nil end def introduce() @introduce = "#{@name} #{@age}歳、#{@breed}です。" end end taro = Dog.new("タロ", 6) p taro p taro.name hachi = Breed.new("ハチ", 10, "秋田犬") p hachi p hachi.name p hachi.age p hachi.breed p "" p hachi.introduce()
execution result
#<Dog:0x007fe4f184ca50 @name="タロ", @age=6> "タロ" #<Breed:0x007fe4f184c8c0 @name="ハチ", @age=10, @breed="秋田犬", @introduce=nil> "ハチ" 10 "秋田犬" "" "ハチ 10歳、秋田犬です。"
Python
code
#!/usr/bin/env python # *-# -*- coding: utf-8 -*- class Dog(object): def __init__(self, name, age): self.name = name self.age = age class Breed(Dog): def __init__(self, name, age, breed): super(Breed, self).__init__(name, age) self.breed = breed def introduce(self): return "%(name)s %(age)s歳、%(breed)sです。" % \ {"name": self.name, "age": self.age, "breed": self.breed} taro = Dog("タロ", 6) print taro print taro.name hachi = Breed("ハチ", 10, "秋田犬") print hachi print hachi.name print hachi.age print hachi.breed print print hachi.introduce()
execution result
<__main__.Dog object at 0x10fd1ad10> タロ <__main__.Breed object at 0x10fd1ad50> ハチ 10 秋田犬 ハチ 10歳、秋田犬です。
参考サイト
メモ
- Pythonで『{"name": self.name}』とかコロンの後にスペース入れるのがPEP8的には正しいみたい。知らなかった(´・ω・`)
- PEP 8 -- Style Guide for Python Code
*1:追加訂正:20120203
トラックバック - http://d.hatena.ne.jp/CortYuming/20120125/p1
リンク元
- 116 http://b.hatena.ne.jp/hotentry/it
- 62 http://reader.livedoor.com/reader/
- 53 http://www.google.co.jp/url?sa=t&rct=j&q=iphone4s 着メロ アプリ&source=web&cd=5&ved=0CE0QFjAE&url=http://d.hatena.ne.jp/CortYuming/20111017/p1&ei=Xn8fT_a7CcXXmAWO_pzSDg&usg=AFQjCNEALWwjVFLKXteKNlNw
- 50 http://www.google.co.jp/url?sa=t&rct=j&q=iphone4s 着信音 変更&source=web&cd=7&sqi=2&ved=0CF4QFjAG&url=http://d.hatena.ne.jp/CortYuming/20111017/p1&ei=y4AfT5SWKKeKmQXYk-ChDg&usg=AFQjCNEALWwjVFLKXteKNlNw9KV
- 46 http://longurl.org
- 43 http://www.google.co.jp/url?sa=t&rct=j&q=iphone4s+着メロ+作成&source=web&cd=2&ved=0CDIQFjAB&url=http://d.hatena.ne.jp/CortYuming/20111017/p1&ei=JnofT-K8KIqOmQWu8JSpDg&usg=AFQjCNEALWwjVFLKXteKNlNw9KVogXrPXw
- 41 http://bit.ly/z0WKJk
- 41 http://jetsli.de/crawler
- 39 http://b.hatena.ne.jp/
- 34 http://search.yahoo.co.jp/search?p=iphone4s+着信音&aq=-1&oq=&ei=UTF-8&fr=top_ga1_sa&x=wrt
