2013年3月26日火曜日

開発環境

『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のVI部(クラスとオブジェクト指向プログラミング)の22章(Pythonでのオブジェクト指向プログラミング)の練習問題3、4、5、6、7を解いてみる。

その他参考書籍

3, 4, 5, 6, 7.

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

class A:
    def __init__(self, a): #初期化
        self.data = a
        print("Hello, __init__!")
    def f(self):
        print("data: {0}".format(self.data))

class B(A): # Aがスーパークラス, Bがサブクラス(Aを継承)
    def __init__(self, a, b):
        A.__init__(self, a)
        self.data2 = b
    def f(self):
        A.f(self)
        print("data2: {0}".format(self.data2))
# クラスからインスタンスはいくつでも作成可能
a = A("Python")
b = A("Perl")

a.f()
# クラスの関数(メソッドの第1引数はインスタンス自身
# 以下の2つは同じ意味
b.f()
A.f(b)

c = B("JavaScript", "HTML5")
c.f()

入出力結果(Terminal)

$ ./sample.py
Hello, __init__!
Hello, __init__!
data: Python
data: Perl
data: Perl
Hello, __init__!
data: JavaScript
data2: HTML5
$

0 コメント:

コメントを投稿