回答編集履歴
2
些細
test
CHANGED
@@ -138,4 +138,4 @@
|
|
138
138
|
|
139
139
|
ゆえにダブルアンダースコア名のためname-manglingの再生成が必要
|
140
140
|
|
141
|
-
|
141
|
+
はそういう意味です。
|
1
引用を変更
test
CHANGED
@@ -116,11 +116,9 @@
|
|
116
116
|
|
117
117
|
|
118
118
|
|
119
|
-
[https://docs.python.org/ja/3/r
|
119
|
+
[https://docs.python.org/ja/3/tutorial/classes.html#private-variables](https://docs.python.org/ja/3/tutorial/classes.html#private-variables)
|
120
120
|
|
121
|
-
|
122
|
-
|
123
|
-
> クラス定義内に書かれた識別子で、2つ以上のアンダースコアから始まり、末尾が2つ以上のアンダースコアで終わっていないものは、そのクラスの プライベートな名前 とみなされます。プライベートな名前は、コードが生成される前により長い形式に変換されます。この変換によって、クラス名の先頭にアンダースコアがあれば除去し、先頭にアンダースコアを1つ付加し、名前の前に挿入されます。例えば、クラス名 Ham の中の識別子 `__spam` は、`_Ham__spam` に変換されます。
|
121
|
+
> クラスのプライベートメンバについて適切なユースケース(特にサブクラスで定義された名前との衝突を避ける場合)があるので、名前マングリング (name mangling) と呼ばれる、限定されたサポート機構があります。 `__spam` (先頭に二個以上の下線文字、末尾に一個以下の下線文字) という形式の識別子は、 `_classname__spam` へとテキスト置換されるようになりました。
|
124
122
|
|
125
123
|
|
126
124
|
|