スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
.-- -- スポンサー広告 comment(-) trackback(-)

Pythonメモ書き:サブクラスの練習2

ほっほ~ですよ。

>>>class FirstClass:
...  def setdata(self, value):
...     self.setdata = value
...  def display(self):
...    print self.setdata

...
>>>x = FirstClass()
>>>y = FirstClass()
>>>x.setdata('mice')
>>>y.setdata('ADAR1')
>>>x.display()
mice
>>>y.display()
ADAR1
>>>
>>>class SecondClass(Firstclass):
...  def display(self):
...    print 'Current value is "%s"' % self.setdata

...
>>>z = SecondClass()
>>>z.setdata("human")
>>>z.display()
Current value is "human"
>>>
>>>class ThirdClass(SecondClass):
...  def __init__(self, value):
...    self.setdata = value
...  def __add__(self, other):
...    return ThirdClass(self.setdata + other)
...  def __mul__(self, other):
...    self.setdata = self.setdata*other

...
>>>a = ThirdClass("canine")
>>>a.display()
Current value is "canine"
>>>b = a + "bovine"
>>>b.display()
Current value is "caninebovine"
>>>a*3
>>>a.display()
Current value is "caninecaninecanine"

で、ここまでやって

色々試してみたくなり

>>>class FourthClass(SecondClass):
...  def __init__(self, value):
...    self.setdata = value
...
>>>m = FourthClass("Kuni")
>>>m.display()
Current value is "Kuni"
>>>n = m + "naga"
Traceback (most recent call last):
File "", line 1, in
TypeError: unsupported operand type(s) for +: 'instance' and 'str'

ほっほー。
ThirdClassで+演算子がビルトインの+演算子として機能していたわけではないことを確認。

で、さらに

>>>x = ThirdClass("micky")
>>>y = ThirdClass("mouse")
>>>M = x + y
Traceback (most recent call last):
File "", line 1, in
File "", line 5, in __add__
TypeError: cannot concatenate 'str' and 'instance' objects
>>>
>>>M = x + " and minny"
>>>M.display()
current value is "micky and minny"
>>>

ほっほ~。

otherはinstanceじゃダメってことか。。。。な?
スポンサーサイト
.07 2010 Python:クラス comment0 trackback0

comment

post comment

  • comment
  • secret
  • 管理者にだけ表示を許可する

trackback

trackbackURL:http://emiandkosuke.blog29.fc2.com/tb.php/84-905b199d

プロフィール

Author:emi
日々、コンピューターとにらめっこしていた2010。
公の仕事に就くことを目指して教科書とにらめっこ2011,spring。
はたして2012は・・・

最新トラックバック

検索フォーム

ブロとも申請フォーム

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。