Pythonでのデータの隠蔽:長所と短所[コーディング例を使用]

公開: 2021-02-05

目次

データ隠蔽とは何ですか?

これは、オブジェクト指向プログラミング(OOP)で使用される方法であり、コンピューターコード内の情報/データを非表示にする目的で非表示にします。 データメンバーなどの内部オブジェクトの詳細は、クラス内に隠されています。 オブジェクトの整合性を維持しながら、クラスメンバーへのデータへの制限付きアクセスを保証します。 データの非表示には、データと関数を1つのユニットに結合して、クラス外からのデータへの直接アクセスを制限することにより、クラス内のデータを隠すプロセスが含まれます。 データサイエンスの初心者で専門知識を習得したい場合は、一流大学のデータサイエンスコースをご覧ください。

データの非表示は、プログラム内の他のクラスからの不要な入力を回避することにより、コンピュータープログラマーが一意のデータセットと関数を使用してクラスを作成するのに役立ちます。 OOPのソフトウェア開発手法であるため、排他的なデータアクセスが保証され、データの意図的または意図しない変更が防止されます。 ソフトウェアコンポーネントのこれらの限定された相互依存性は、システムの複雑さを軽減し、プログラムの堅牢性を高めるのに役立ちます。

データの隠蔽は、情報の隠蔽またはデータのカプセル化とも呼ばれます。 データのカプセル化は、アプリケーションの実装の詳細をユーザーから隠すために行われます。 両方の背後にある意図は同じであるため、カプセル化はデータの非表示とも呼ばれます。 データメンバーがクラス内でプライベートとして言及されている場合、同じクラス内でのみアクセス可能であり、そのクラス外ではアクセスできません。

Pythonでデータを隠す

Pythonは、すべてのセクターに適用され、簡単なプログラム実装ツールとライブラリを備えているため、人気のあるプログラミング言語になりつつあります。 Pythonドキュメントでは、データの非表示をプログラム実装の一部からクライアントを分離することとして定義しています。 モジュール内の一部のオブジェクトは内部に保持され、非表示になり、ユーザーはアクセスできなくなります。

プログラムのモジュールは、アプリケーションの使用方法を理解するのに十分に開いていますが、ユーザーはアプリケーションがどのように機能するかを知ることができません。 したがって、データの非表示は、依存関係を回避するとともに、セキュリティを提供します。 Pythonでデータを隠すことは、アプリケーション内の特定のユーザーへのアクセスを防ぐ方法です。

Pythonでのデータの非表示は、属性名の前(プレフィックス)に二重アンダースコアを使用して行われます。 これにより、属性がプライベート/アクセス不能になり、ユーザーから非表示になります。 Pythonには本当の意味での秘密は何もありません。 それでも、プライベートメソッドと属性の名前は、その場で内部的にマングルおよびアンマングルされているため、指定された名前でアクセスできなくなります。

Pythonでのデータ隠蔽の例

#!/ usr / bin / python

クラスJustCounter

__secretCount = 0

def count self ):

自己 __secretCount + = 1

自己印刷ます。 __secretCount

カウンター= JustCounter ()

カウンター カウント()

カウンター カウント()

カウンター印刷します __secretCount

出力

1

2

トレースバック(最後の最後の呼び出し):

<module>の12行目のファイル「test.py」

カウンターを印刷します。__secretCount

AttributeError:JustCounterインスタンスに属性'__secretCount'がありません

Pythonは、object._className__attrNameによってアクセスされるクラスのメンバーの名前を内部的に変更します。

最後の行が次のように変更された場合:

……………………。

カウンターを印刷します。_JustCounter__secretCount

次にそれが機能し、出力は次のようになります。

1

2

2

データ非表示の利点

  • クラス内のオブジェクトは、無関係なデータから切断されます。
  • 機密データにアクセスできないハッカーに対するセキュリティを強化します。
  • これにより、プログラマーが誤って誤ったデータにリンクするのを防ぐことができます。 プログラマーがこのデータをコードにリンクすると、間違いの修正を示すことによってのみエラーが返されます。
  • OOPの基本概念としてオブジェクトを分離します。
  • 揮発性データを公開しないようにすることで、データの損傷を防ぐのに役立ちます

データ非表示のデメリット

  • プログラマーに余分なコーディングを強制する場合があります。
  • 表示データと非表示データの間のリンクにより、オブジェクトの動作が速くなりますが、データを非表示にすると、このリンクが妨げられます。
  • データの非表示は、プログラマーにとって困難になる可能性があり、非表示のデータに効果を作成するために長いコードを記述する必要があります。

したがって、データの非表示は、アプリケーション内の特定の情報に対するプライバシーとセキュリティに関して、Pythonで役立ちます。 コード内の隠しデータをリンクしている間、プログラマーの作業が増えます。 しかし、それが提供する利点は本当に避けられません。

また読む: Pythonインタビューの質問と回答

結論

Pythonオンラインコースに無料で参加するには、次の手順に従うだけです。

  • upStartページに移動します
  • 「PythonforDataScience」コースを選択します
  • 登録をクリックします
  • 登録プロセスを完了する

それでおしまい。 新しくリリースされたupStartプログラムを通じて、Pythonをオンラインで無料で学び、データサイエンスの旅を始めることができます。 数週間、1日30分だけ投資する必要があります。 このプログラムは金銭的な投資を必要としません。

今すぐサインアップして始めましょう。

このトピックに関して質問や提案がある場合は、以下のコメントでお知らせください。 あなたからの御一報をお待ちしています。

データサイエンスについて知りたい場合は、IIIT-B&upGradのデータサイエンスのエグゼクティブPGプログラムをチェックしてください。これは、働く専門家向けに作成され、10以上のケーススタディとプロジェクト、実践的なハンズオンワークショップ、業界の専門家とのメンターシップを提供します。1業界のメンターとの1対1、400時間以上の学習、トップ企業との仕事の支援。

Pythonに隠されているデータとは何ですか?

データの非表示は、外部からのデータへのアクセスを制限するオブジェクト指向プログラミングのコアコンセプトの1つです。 データメンバーなどの詳細は、「プライベート」アクセス指定子の助けを借りて隠されたままになります。 理解を深めるために、次の例を検討してください。
myClassというクラスと__privateCounterというプライベートメンバーがあるとします。 このクラス内には、__ privateCounterの値を1つインクリメントして出力する、myFuncという関数があります。 クラスの外で、クラスのオブジェクトを作成し、このオブジェクトを使用してmyFuncを呼び出しました。 ここで、このオブジェクトを使用して__privateCounterを出力しようとすると、エラーがスローされます。
上記の例では、「__privateCounter」はデフォルトでクラス「myClass」のプライベートメンバーです。 データを非表示にしているため、宣言されているクラスの外部からはアクセスできません。 プライベートメンバーにアクセスするには、メンバー関数(この場合は「myFunc」)を定義する必要があります。

データ非表示の長所と短所は何ですか?

データの非表示はOOPのコアコンセプトであり、多くの利点がありますが、いくつかの欠点もあります。 以下は、Pythonでデータを隠すことの最も重要な長所と短所のいくつかです。
利点
1.プライベートとして宣言することにより、揮発性データの誤用や操作を防ぐのに役立ちます。
2.クラスのデータメンバーは、無関係なデータからリンク解除されます。
3.OOPの基本概念としてオブジェクトを分離します。
短所
1.プログラマーは、揮発性データをクライアントから保護するために、長いコードを書くことを余儀なくされることがよくあります。
2.オブジェクトは、表示データと非表示データの間のリンクによって高速に動作し、データを非表示にするとこのリンクが妨げられるため、動作が比較的遅くなります。

データの非表示はデータの抽象化とどのように異なりますか?

データの非表示は、外部からアクセスしたり変更したりできないようにデータを制限するという考え方をサポートしています。 たとえば、ある従業員の給与の詳細は他の従業員には表示されません。 Pythonでは、これは「プライベートアクセス修飾子」を使用して実現されます。
データの抽象化とは、内部の実装を隠し、機能を外部にのみ表示するという考え方を指します。 たとえば、電卓では、電卓によって実行された操作のみが表示されます。 ただし、これらの操作の内部動作を確認することはできません。 Pythonでは、これを実装するためにさまざまなアクセス指定子が使用されます。