3

さまざまなプログラミング言語 (PHP および Python) でアンダースコアで始まる関数と変数を見てきましたが、その背後にある意味について混乱しています。

4

2 に答える 2

5

PHP で通常の規則が使用されていると仮定します。

  • 単一のアンダースコアは、保護されたメンバー変数またはメソッドを示します
  • 二重アンダースコアは、プライベート メンバー変数またはメソッドを示します

これは、PHP の OOP サポートが弱く、private と protected の概念がなかった (すべてが public だった) ことに起因します。この規則により、開発者はメンバー変数またはメソッドがプライベートまたは保護されていることを示し、これをコードのユーザーによりよく伝えることができました。

ただし、ユーザーはこれらのセマンティクスを無視して、"private" および "protected" メンバー変数とメソッドを呼び出すこともできます。

于 2013-10-24T00:36:12.083 に答える
3

単一のアンダースコアは、Python のクラス/インスタンス属性に対して特別な意味を持ちません。慣例により、プライベート変数/関数を示します。from module import *単一のアンダースコアで始まる関数と変数はインポートされません。(バイ・リコに感謝)。

二重アンダースコアは、名前マングリングを呼び出します。これにより、サブクラス内の同じ名前を持つクラスとは異なる属性をクラスに持たせることができます。

于 2013-10-24T00:57:04.100 に答える