開発環境
- 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 コメント:
コメントを投稿