python クラスを作成する

python クラスを作成する

pythonで、クラスを作成するサンプルコードを記述してます。pythonのバージョンは3.8.5を使用してます。

環境

  • OS windows10 pro 64bit
  • python 3.8.5

クラスの作成

pythonの場合、クラスは以下のように作成します。

class Hoge:
    # コンストラクタ _を前後に2つ
    def __init__(self):          
        print("コンストラクタが実行されました")
        self.name = ""

    # pythonではメソッドには引数が必要 最初の引数は必ずselfにする
    def getName(self):           
        return self.name

    # メソッド 最初の引数は必ずselfにする
    def setName(self, name):
        self.name = name

# インスタンスを生成
foo = Hoge()
# コンストラクタが実行されました

# setName()メソッド実行
foo.setName("suzuki")  

# getName()メソッド実行
print(foo.getName())
# suzuki

また、pythonは、privateのアクセス修飾子がないため、これもコンストラクタのように「__」を利用します。

class Hoge:
    # コンストラクタ _を前後に2つ
    def __init__(self):
        self.name = "mebee"
        self.__name = "private"        

    # pythonではメソッドには引数が必要
    def msg(self): 
        print ('msg')
        self.__msg() # privateメソッドを実行

    # private
    def __msg(self): 
        print ('__msg')

# インスタンスを生成
foo = Hoge()
# コンストラクタが実行されました

# msg()メソッド実行
foo.msg()
# msg
# __msg

# __msg()メソッド実行するとエラー
foo.__msg()
# AttributeError: 'hoge' object has no attribute '__msg'

# foo.nameを参照
print(foo.name)
# mebee

# foo.__nameを参照するとエラー
print(foo.__name)
# AttributeError: 'hoge' object has no attribute '__name'