shinoblog-manabu

Progate(プロゲート)を使って初歩の初歩からプログラミング勉強をはじめました。無料から有料バージョンへ以降しつつ、自分辞書として活用しています。なるべく私と同じ初心者目線を使い、各プログラミング内容を説明したいです。

カプセル化

f:id:shinoblog-manabu:20210709000125j:plain

カプセル化

カプセル化とは

・データの保護

・属性へのアクセスを行わない(制限)ようにする。

 

データの制限方法

アンダースコアの数によって決まる。

アクセス拒否したい属性名をアンダースコア_を先頭につけた名前にする

#2-1

f:id:shinoblog-manabu:20210709211951p:plain

f:id:shinoblog-manabu:20210709212032p:plain

 

アクセスを制限したいとき

アクセス制限したい属性名をアンダースコア_ _を先頭につけた名前にする

#3-1

f:id:shinoblog-manabu:20210709212052p:plain

f:id:shinoblog-manabu:20210709212100p:plain

 

クラスのインスタンス変数を隠す「マングリング」とは

属性の名前に変更され、アクセスできないようにする名前のことをいう。

上記のようなシンプルな方法でオブジェクト指向を実現している。

 

参考:

https://www.youtube.com/watch?v=JeznW_7DlB0

 

 

セッターとゲッター

 

カプセル化の仕組みの一種。

 

セッター(setter

データを設定するメソッドをいう。

 

ゲッター(getter)

 

データを取得するメソッドをいう。

#4-1

f:id:shinoblog-manabu:20210709212117p:plain

 

次の形式で暮らすの外からデータを設定・取得するメソッドを呼び出すことができるようになる。

 

#4-2

f:id:shinoblog-manabu:20210709212129p:plain

 

上記を使ってデータに誤りがないかをチェックした上で、データの設定・取得を行うようにし、カプセル化を行う。

 

 

シンプルなPythonカプセル化

_ や __をつけてカプセル化を行うことができるが、Pythonオブジェクト指向はとてもシンプルなもの。_ や __をつけないでクラスの記述を行うこともできる。

 

 

独学プログラマーP158~P160

オブジェクト指向プログラミングの4代要素より7

カプセル化の概念とは

オブジェクトによって、ふくすうの変数メソッドをまとめること

 

#5-1

f:id:shinoblog-manabu:20210709212144p:plain

#5-2

f:id:shinoblog-manabu:20210709212153p:plain

 

#5-3 answer:

self_taught/python_ex254.py at master · calthoff/self_taught · GitHub

f:id:shinoblog-manabu:20210709212210p:plain

 

#5-3-5

f:id:shinoblog-manabu:20210709212230p:plain

 

 

 

ブロガーの皆様ありがとうございました!

参考記事:🔽🔽

Pythonのプライベート変数という概念のお話 | ハイパー猫背

creepfablic.site