回答編集履歴

2

些細

2021/04/10 04:26

投稿

quickquip
quickquip

スコア11235

test CHANGED
@@ -138,4 +138,4 @@
138
138
 
139
139
  ゆえにダブルアンダースコア名のためname-manglingの再生成が必要
140
140
 
141
- だというのはそういう意味です。
141
+ はそういう意味です。

1

引用を変更

2021/04/10 04:26

投稿

quickquip
quickquip

スコア11235

test CHANGED
@@ -116,11 +116,9 @@
116
116
 
117
117
 
118
118
 
119
- [https://docs.python.org/ja/3/reference/expressions.html#index-5](https://docs.python.org/ja/3/reference/expressions.html#index-5)
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