何がやりたいかというと、
の形の数を表すクラスを作りたい。
これを作るのに必要な要素を書いていく。
クラス名は「Gal」とする(Galoisの略)。
デフォルト引数
データメンバはa,b,c,dの4つとして、
Gal(1, 2, 3, 4)
で、(1+2√3)/4を表す。その他に、
Gal(1, 2, 3) # 1+2√3
Gal(1) # 1
としたい。
C++と同じようなデフォルト引数が使えて、
class Gal:
def __init__(self, a, b = 0, c = 0, d = 1):
self.a = a
self.b = b
self.c = c
self.d = d
とする。
可変個引数
Perlに似ている可変個引数も使える。
class Gal:
def __init__(self, a, *b):
self.a = a
if len(b) < 1:
self.b = 0
self.c = 0
else:
self.b = b[0]
self.c = b[1]
if len(b) < 3:
self.d = 1
else:
self.d = b[2]
2つ目以降の引数を、リスト、じゃなくてタプルのbで受ける。
リスト
ここでは、あまり紹介しない。
a = [1, 2, 3] # リスト
print a[0], a[1], a[2] # 要素にアクセス
print len(a) # 長さ
Perlのようにスライシングも使える。
self.b, self.c = b[0:2]
これは、
self.b = b[0]
self.c = b[1]
と同等。