SHOT4

社会人大学院生の勉強記録

問2.6 (クラス)

問題文

tutorials.chainer.org

今回は条件に応じたクラスを作成する。

  • クラスは「class クラス名:」で作成する
  • __init__()関数を作成すると、クラスを作成したタイミングでこれが呼ばれる。コンストラク
  • クラス内の関数には(self)を引数として与える
  • クラスから作ったインスタンスの変数をいじりたいときは、self.xxxxと定義する

クラスの定義は下記の通り

  • クラス名:DataManager
  • __init__(self, x, y, z): 3つの数 x, y, z をコンストラクタで受け取り、インスタンスの属性でそれぞれの値を記憶する。
  • add_x(self, delta): x に delta だけ足して、値を更新する。
  • add_y(self, delta): y に delta だけ足して、値を更新する。
  • add_z(self, delta): z に delta だけ足して、値を更新する。
  • sum(self): x, y, z の3つの数の合計値を返す。

解答

class DataManager:
    def __init__(self,x,y,z):
        self.x = x
        self.y = y
        self.z = z

    def add_x(self,delta):
        self.x += delta
        return self.x

    def add_y(self,delta):
        self.y += delta
        return self.y
    
    def add_z(self,delta):
        self.z += delta
        return self.z
    
    def sum(self):
        return self.x+self.y+self.z

# 動作確認
data_manager = DataManager(2, 3, 5)
print(data_manager.sum())  # => 10
data_manager.add_x(4)      # => data_manager.x の値が 2 から 6 に更新される
print(data_manager.sum())  # => 14
data_manager.add_y(0)      # => data_manager.y の値が 3 から 3 に更新される
print(data_manager.sum())  # => 14
data_manager.add_z(-9)     # => data_manager.z の値が 5 から -4 に更新される
print(data_manager.sum())  # => 5

10
14
14
5

meganeshot4.hatenablog.com