Python | プライベート変数の使い方

2021年6月7日

公開日:2021/6/7

Pythonでは,クラスの内部からしか原則アクセスできないプライベート変数がある.プライベート変数を利用すると,外部から操作できなくする特徴がある.以下にプライベート変数の使い方を記す.

◆実施環境

Python 3.8.8

■プライベート変数を利用した構文

プライベート変数を利用する場合,変数の前に"__"(アンダースコア2つ)をつける.

#1の処理ではプライベート変数を利用しない一般的な構文を作成した.#2の処理で変数をプライベート変数に変更した場合の構文を作成した.#2の処理ではクラスの範囲外でプライベート変数を利用したため,エラーが出力される.#3の処理ではクラス内でプライベート変数を利用した場合の構文を作成した.

# 1の処理(プライベート変数を利用しない構文)
class Crow:

  def __init__(self,color,name):
    self.color = color
    self.name = name

bird = Crow('Black','Kataro')
print(f'color is {bird.color} and name is {bird.name}')

# 2の処理(プライベート変数を利用する構文:エラーあり)
class Crow:

  def __init__(self,color,name):
    self.__color = color
    self.__name = name

bird = Crow('Black','Kataro')
print(f'color is {bird.__color} and name is {bird.__name}')

# 3の処理(プライベート変数を利用する構文:エラーなし)
class Crow:

  def __init__(self,color,name):
    self.__color = color
    self.__name = name

  def character(self):
    print(f'color is {self.__color} and name is {self.__name}')

bird = Crow('Black','Kataro')
bird.character()

■実行結果

# 1の結果(プライベート変数なし,エラーなし)
color is Black and name is Kataro

# 2の結果(プライベート変数あり,エラーあり)
AttributeError: 'Crow' object has no attribute '__color'

# 3の結果(プライベート変数あり,エラーなし)
color is Black and name is Kataro

以上