class 特別方法 鬚鬚好長

class 可以定義方法,其中有幾個方法是特別的:
下面幾個方法大都是__xxx__()方式命名,注意底線是個兩個字元,所以不是_xxx_()。
__init__()是初始化類別的方法,這個方法會在建立實例之後被呼叫

>>> class Pen:
...      def __init__(self):
...        print("a pen")
...
>>> p = Pen()
"a Pen"
>>>

__init__()方法可以額外加入參數當作物件初始化時加入的參數
>>> class Building:
...   def __init__(self,floor):
...      self.floor = floor
...   def high(self):
...      print("High " + str(self.floor * 3) + " meter")
...
>>> b = Building(10)
>>> b.high()
"High 30 meter"

__str__()方法是當用在表示的時候(如print()方法)會顯示的內容

>>> class Language:
...      def __init__(self, name):
...         self.name = name
...      def __str__(self):
...         return "This language is " + self.name
...
>>> h = Language("Hymmnos")
>>> print(h)
"This language is Hymmnos"