開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- Script言語: Python
『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のVI部(オブジェクト指向プログラミング)24章(クラスのコーディング(詳細))の練習問題4、5を解いてみる。
その他参考書籍
4, 5.
コード(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!")
print(self.data)
class B(A):
def __init__(self, data):
A.__init__(self, data)
self.data2 = "__init__"
def f(self):
A.f(self) # スーパークラスのメソッドの機能を全て活かす
print("Hello, Class B!")
print(self.data, self.data2)
a = A(10)
b = B(20)
for x in (a, b):
x.f()
print()
入出力結果(Terminal)
$ ./sample.py Hello, Class A! 10 Hello, Class A! 20 Hello, Class B! 20 __init__ $
ちなみにJavaScriptの場合。
コード(BBEdit)
var Obj1 = function(o){
this.a = o;
};
Obj1.prototype.f = function(){
$('#pre0').append("Hello, Obj1!\n");
$('#pre0').append(this.a + "\n");
};
var Obj2 = function(o){
this.b = "function";
Obj1.prototype.a = o;
};
Obj2.prototype = new Obj1();
Obj1.constructor = Obj2;
Obj2.prototype.f = function(){
Obj1.prototype.f();
$('#pre0').append("Hello, Obj2!\n");
$('#pre0').append(this.b + "\n");
};
var o1 = new Obj1(10);
var o2 = new Obj2(20);
var a = [o1, o2];
for(var i = 0; i < a.length; i++){
a[i].f();
$('#pre0').append("\n");
}
0 コメント:
コメントを投稿