2012年12月30日日曜日

開発環境

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

その他参考書籍

3.

コード(BBEdit)

sample.py

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

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

# HAS-A関係(class B has class A)
# コンテナオブジェクト
class B:
    def __init__(self):
        self.data = "python"
    
    def f(self): # コンテナメソッド
        a = A(self.data) # コンポジション(他のオブジェクトを組み込む)
        a.f()

if __name__ == '__main__':
    a = A("javascript")
    b = B()
    a.f()
    b.f()

入出力結果(Terminal)

$ ./sample.py
Hello, class A! (javascript)
Hello, class A! (python)
$

ちなみにJavaScriptの場合。

コード(BBEdit)

var A = function(data){
  this.data = data;
};
A.prototype.f = function(){
  $('#pre0').append("Hello, class A! (" + this.data + ")\n");
};
var B = function(){
  this.data = "python";
};
B.prototype.f = function(){
  var a = new A(this.data);
  a.f();
};
var a = new A("javascript");
var b = new B();
a.f();
b.f();








						

0 コメント:

コメントを投稿