Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonクラスでのデータ隠蔽はどのように機能しますか?


データの非表示

Pythonでは、属性名の前に二重アンダースコアを使用して、属性にアクセスできないようにしたり、非公開にしたり、非表示にしたりします。

次のコードは、変数__hiddenVarがどのように非表示になっているのかを示しています。

class MyClass:
    __hiddenVar = 0
    def add(self, increment):
       self.__hiddenVar += increment
       print (self.__hiddenVar)
myObject = MyClass()
myObject.add(3)
myObject.add (8)
print (myObject.__hiddenVar)
出力
3
Traceback (most recent call last):
11
  File "C:/Users/TutorialsPoint1/~_1.py", line 12, in <module>
    print (myObject.__hiddenVar)
AttributeError: MyClass instance has no attribute '__hiddenVar'

上記のプログラムでは、オブジェクトを使用してクラスの外部の隠れた変数にアクセスしようとしましたが、例外がスローされました。

次のような特別な構文を使用して、hidden属性の値にアクセスできます-

class MyClass:
    __hiddenVar = 12
    def add(self, increment):
       self.__hiddenVar += increment
       print (self.__hiddenVar)
myObject = MyClass()
myObject.add(3)
myObject.add (8)
print (myObject._MyClass__hiddenVar)
出力
15
23
23

プライベートメソッドにはクラスの外部からアクセスできますが、通常の場合ほど簡単ではありません。 Pythonには本当にプライベートなものはありません。内部的には、プライベートメソッドと属性の名前は、指定された名前でアクセスできないようにするために、その場でマングルおよびアンマングルされます。


  1. 非線形データをPythonのモデルにどのように適合させることができますか?

    データの視覚化に役立つSeabornライブラリを使用します。回帰モデルを作成するときに、多重共線性がチェックされます。これは、連続変数のすべての異なる組み合わせの間に存在する相関関係を理解する必要があるためです。変数間に多重共線性が存在する場合は、それがデータから削除されていることを確認する必要があります。通常、実世界のデータは非線形です。 このような非線形データをモデルに適合させるメカニズムを見つける必要があります。このデータを視覚化するために、Anscombeのデータセットを使用します。 「implot」関数は、この非線形データで使用されます。 これが例です- 例 import pan

  2. Pythonでチャートに凡例を追加する方法は?

    はじめに... グラフの主な目的は、データを簡単に理解できるようにすることです。 「絵は千の言葉に値する」とは、言葉では表現できない複雑なアイデアを1つの画像/グラフで伝えることができることを意味します。 多くの情報を含むグラフを描画する場合、表示されるデータの理解を深めるために、凡例が関連情報を表示するのに役立つ場合があります。 その方法.. matplotlibでは、凡例を複数の方法で表示できます。特定のポイントに注意を引くための注釈は、読者がグラフに表示される情報を理解するのに役立ちます。 1. pythonコマンドプロンプトを開き、pip install matplotlibを