こんなようなことをしたい。
a = Gal(3, 2, 3, 2)
print a
これは、__str__という名前のメソッドを定義すればよい。
http://www.python.jp/doc/release/ref/customization.html
class Gal:
def __init__(self, a, b = 0, c = 0, d = 1):
self.a = a
self.b = b
self.c = c
self.d = d
def __str__(self):
if self.d == 1:
return self.str_core()
else:
return "(" + self.str_core() + ")/" + str(self.d)
def str_core(self):
if self.a == 0 and self.b == 0:
result = "0",
else:
result = ""
if self.a != 0:
result = str(self.a)
if self.a > 0 and self.b > 0:
result += "+"
if self.b == 1:
result += "√" + str(self.c)
elif self.b == -1:
result += "-√" + str(self.c)
elif self.b != 0:
result += str(self.b) + "√" + str(self.c)
return result;
__str__が定義されていると、組込み関数strも使える。
a = Gal(3, 2, 3, 2)
b = Gal(3, 1, 5)
print "[" + str(a) + ", " + str(b) + "]"
日本語
Shift-JISを使うには、最初のほうで、
# coding: s_jis
としておけばよいらしい。