牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

多重継承を赤い彗星的にPythonでやってみた

継承の概念をサポートしない言語機能は ``クラス'' と呼ぶに値しません。

Pythonチュートリアル 9.5 継承

なにぃぃぃっ(||゚Д゚)
ということで多重継承をPythonでやってみた。

Python
#!/usr/bin/env python
# *-# -*- coding: utf-8 -*-
#char_zaku.py

class Soldier(object):
    ms_type = {"ZAKU":"MS06", "GOUF":"MS07", "DOM":"MS09"}
    def __init__(self, name, ms): 
        self.name = name
        self.ms = ms
        self.type = "F [Green]"

    def __str__(self):
        return '%s: %s-%s' % \
            (self.name, self.ms_type.get(self.ms), self.type)

class Red_Comet(Soldier):
    def __init__(self, name, ms):
        super(Red_Comet, self).__init__(name, ms)
        self.type = "S [RED]"

if __name__ == '__main__':
    slender = Soldier('Slender', "ZAKU")
    print slender.name
    print slender.ms
    print slender

    char = Red_Comet('Char', "ZAKU")
    print char.name
    print char.ms
    print char

実行結果

Slender
ZAKU
Slender: MS06-F [Green]
Char
ZAKU
Char: MS06-S [RED]


class Soldier(object)みたいに"(object)"をいれると"super(〜)"が使えるみたい。
クラスよくわかんないなぁ...どういった時に使うと便利なんだろ?(´・ω・`)