継承


クラス継承


継承はその名の通り、自分が持っているものを継承する概念です.
親(親、ベース、スーパークラス)がベースで、継承するクラスを子(子、派生クラス、子)と呼びます.
class parent_class:
    def __init__(self):
        self.name = 'hyunsoo'
        self.birthday = 930415

    def p_print(self):
        print(f"내이름은 {self.name}입니다.")

class child_class(parent_class):
    def __init__(self):
        super(child_class,self).__init__()
        self.myname ='hyosung'
        self.mybirthday=930111

child = child_class()
print(f"내 이름은 {child.myname}이고 내친구 {child.name}의 생일은 {child.birthday}이다")
child.p_print()

super(classname,self).Init():classnameに対応するクラスの親の感覚を継承する
super(classname,self).init(**kwargs):親のパラメータがinitパラメータの場合に使用される構文
python3.xバージョンではsuper()です.Init()のように使えますが、上の2です.xバージョンも互換性があるので,上記の構文を用いる汎用性は良好である.

overriding


クラスが継承されると、親クラスで定義されたメソッドが子クラスに変更されます.
class parent_class:
    def __init__(self):
        self.name = "hyunsoo"

    def birth_d(self,day):
        print(f"{self.name}의 생일은 {day}이다")

class child_class(parent_class):
    def __init__(self):
        super(child_class,self).__init__()
        self.myname = "taewoo"

    def birth_d(self,day):
        print(f"{self.myname}의 생일은 {day}이다")

child = child_class()
child.birth_d(930111)
print(child.name)

overloading


メソッドの関数名は同じですが、入力パラメータによって異なるメソッドが呼び出されます.
Pythonがオーバーロードをサポートせず、クラスに同じメソッド名が存在する場合、最後に定義されたメソッドが機能します.しかし他の言語ではよく使われる用語なので、知っておくといいでしょう.