Python_クラス



クラスの作成

pythonクラスの特徴


コンストラクタ

コンストラクタは「__init__()」という名前で定義します。

アンダーバー「_」を前後に2つ記述します。


デストラクタ

__del__という名前のメソッドで定義します。

しかし、デストラクタは定義せずにガベージコレクションに任せる場合がほとんどです。

withを用いなければ完全に開放されないことがあります。


サンプル

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# vim:fileencoding=utf-8
# coding=utf8


import sys


class ClassName:
    val = "public"
    __val = "private"

    def __init__(self):
        self.__private_method(" called by constructor")

    def public_method(self):
        self.__private_method(" called by" + sys._getframe().f_code.co_name)

    def __private_method(self, arg):
        print(sys._getframe().f_code.co_name + arg)


def main():
    instance = ClassName()    # __private_method called by constructor
    instance.public_method()  # __private_method called bypublic_method
    print(instance.val)       # public


if __name__ == "__main__":
    main()

継承

python継承の特徴


サンプル

class A:
    def method(self):
        print("class A")

class B:
    def method(self):
        print("class B")

class C(A):
    def method(self):
        print("class C")

class D(B,C):
    pass

d = D()
d.method()

関連ページ



スポンサード リンク