Python クラスの書き方

Python クラスの書き方

概要

Pythonでのクラスの書き方の基本形についてまとめる。 主な目的としては、細かい書き方を忘れたときに、これらをテンプレートとして使用するため。

環境

  • Python3

基本

class SampleClass:
  def __init__(self):
    print('constructor')
    
  def method1(self):
    print('method1')
  
  def method2(self,a,b):
    print('method2 - arg1 : ' + str(a) + ', arg2 : ' + str(b))

  def method3(self,a,b):
    return a+b
実行例
sampleClass = SampleClass()
# constructor
sampleClass.method1()
# method1
sampleClass.method2(1,2)
# method2 - arg1 : 1, arg2 : 2
c = sampleClass.method3(1,2)
print(str(c))
# 3

クラス変数/インスタンス変数

class SampleClass_WithVariable:
  classvar_x = 0
  def __init__(self, x):
    self.x = x
    SampleClass_WithVariable.classvar_x += 1
    
  def printInstanceVar(self):
    print('instance variable : ' + str(self.x))
  
  def printClassVar(self):
    print('class variable : ' + str(SampleClass_WithVariable.classvar_x))
実行例
sampleClassWithVariable1 = SampleClass_WithVariable(3)
sampleClassWithVariable1.printInstanceVar()
sampleClassWithVariable1.printClassVar()
# instance variable : 3
# class variable : 1
sampleClassWithVariable2 = SampleClass_WithVariable(5)
sampleClassWithVariable2.printInstanceVar()
sampleClassWithVariable2.printClassVar()
# instance variable : 5
# class variable : 2

継承

class BaseClass():
  def __init__(self):
    print('base class constructor')

class SubClass(BaseClass):
  def __init__(self):
    super().__init__()
    print('sub class constructor')
実行例
subClass = SubClass()
# base class constructor
# sub class constructor