「明示的が暗黙的よりも優れている」場合、Pythonには明示的アクセス修飾子がないのはなぜですか:Public、Protected、Privateなど?
プログラマーはヒントを通して何をすべきかを知っておくべきだという考えを知っています-「ブルートフォース」を使用する必要はありません。しかし、IMOの「カプセル化」または「情報隠蔽」は単に人を締め出すためだけではなく、組織と構造の問題です。物理層システムのように、開発レイヤーは明確に区切られたスコープと境界を自己定義する必要があります。
Pythonでアクセス制限が明示されているのではなく、それ以外の場合は完璧に近いと思われる言語について、なぜアクセス制限が暗黙的に含まれているのかについて、誰かがここで助けてくれますか?
編集:これまでに3つの提案された答えを見てきましたが、私の質問には2つの部分があることに気付きました。
たとえば、キーワードがないのはなぜですか
private def myFunc(): dostuff....
IMOの代わりに、typeいアンダースコアを入力します。しかし、それは重要なポイントではありません。
さらに重要なことには:
これらのアクセス修飾子が「推奨事項」またはヒントのみであり、強制されないのはなぜですか。後で変更するのは難しいでしょうか?「保護された」を「パブリック」に変更するのは非常に簡単です-複雑な継承チェーンがあり、それが難しくなると、デザインが貧弱になります-書きやすい言語機能に依存するのではなく、デザインを洗練する必要があります不十分な構造のコード。
アクセス修飾子が適用されると、コードは自動的に区分化されます。特定のセグメントが範囲外であることを知っているので、必要な場合と必要な場合を除き、それらを処理する必要はありません。そして、あなたのデザインが良くなく、物事をさまざまな範囲に出し入れしていることに気付いた場合、言語はあなたの行為をきれいにするのに役立ちます。
Pythonが大好きなのと同じように、この2番目の点は深刻な欠陥であると感じています。そして、これに対する良い答えをまだ見ていません。
private def whatever
は、それclass x: def whatever(self): pass
がのショートカットであるためclass x: pass; x.whatever = lambda self: pass
、基本的に、割り当てにはプライベート修正子が必要になることです