3
4

乃木坂46でクラスのカプセル化を勉強する

Posted at

乃木坂46でクラスのカプセル化を勉強します。
まずソースコードを例示します。

class Nogizaka46:



  # コンストラクタ
  def __init__(self,name,div="3期生です"):
    self.name = name
    # アクセス制限を指定
    self.__div = div


  # getter Div
  # メンバーの期別をgetter(getDiv関数)で返す。
  @property
  def getDiv(self):
    return self.__div
  # getter name
  
  # メンバーの名前をgetter(getName関数)で返す。
  @property
  def getName(self):
    return self.name
  
  #期別判定のsetter関数(setDiv関数)で設定し、期別で判定する
  @getDiv.setter
  def setDiv(self,div1):
    if div1 >= 3 and div1 < 6:
      self.__div = str(div1) + "期生です"
    else:
      self.__div = "乃木坂46の現役メンバーではありません"

# インスタンスを名前を付けて呼び出し、setterで期を代入し、結果を表示
mem1 = Nogizaka46("梅澤美波")
mem1.setDiv = 3
name1 = mem1.getName
div1= mem1.getDiv
print(f'{name1}{div1}')

mem2 = Nogizaka46("中西アルノ")
name2 = mem2.getName
mem2.setDiv = 5
div2= mem2.getDiv
print(f'{name2}{div2}')

mem3 = Nogizaka46("桜井玲香")
name3 = mem3.getName
mem3.setDiv = 1
div3= mem3.getDiv
print(f'{name3}{div3}')

mem4 = Nogizaka46("岩本蓮加")
name4 = mem4.getName
div4= mem4.getDiv
print(f'{name4}{div4}')

実行した結果は下記の通りです。

sample.jpg

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4