C++のClassでは private, publicといったものがある。Pythonではどうか。オブジェクト指向言語ではクラスという機能があるのが普通だが各コンピュータ言語によってクラスの様相はどう違うのか。少し覗き見をしようではないか。ちなみにワタクシは高校の時のクラスは3年1組であーーーたのぞの。どや。
さらにワタクシは西武新宿線沿線で暮らすのであるぞの。どや。西武・ライオンズ 頑張るのだ。最近は たまに勝つ ようになって嬉しいであるぞの。ま~今年は最下位でBクラスで暮らすようだがなあ。クラスで暮らすで3年1組がクラス、ププッ) どや。
Python Classのコードを見ると アンダースコア すなわち下線(_)がよく出て来るのでワタクシはこれは何か裏があるに違いないと感づいてはいたのである。
大事なのでコピペるワタクシ
公衆(Public): 名前にアンダースコアを付けない通常の名前は、公開属性やメソッドとして扱われます。外部からアクセスしても問題ないとされます。
保護(Protected): 名前の前に1つのアンダースコア (_
) を付けることで、クラス外からのアクセスは推奨されないことを示します。ただし、Python ではこれは単なる慣習であり、アクセス制御を強制するものではありません。
プライベート(Private): 名前の前に2つのアンダースコア (__
) を付けることで、名前修飾(name mangling)が行われ、外部からアクセスできないようにします。これにより、クラスの外部からの直接アクセスは難しくなりますが、完全に防げるわけではありません。
これな。__init__ 名前の前に・・・・ではなくて名前の前後についとるのは何かさぁ?
Gemini先生の回答
というわけでワタクシのモヤモヤが氷解・・・・した気がするような感じもあるが気のせいか
アンダースコアなし
シングル・アンダースコア
ダブル・アンダースコア
前後にアンダースコア これは __init__だけか?
まあようするにPythonってインデントにプロック機能を持たせているので他の言語との違いとしては何か工夫出して差別化しようという言語設計者の思惑があったのだろう。詳しくは知らぬ。
他社製品との差別化・・・・・・これがワタクシが某社でコンシューマー機器の設計に従事しておった頃に上の方々がようけ言う取りましたわ。はるか昔の話(´・ω・`)
ワタクシの知らないことが次々と出てきおりやがったます
も~も~ワタクシついていけぬます
だから、語尾の ます って何だよ!!