回答編集履歴

1

回答内容を追記

2019/05/14 05:21

投稿

mar-kn
mar-kn

スコア306

test CHANGED
@@ -1,4 +1,4 @@
1
- 名前の衝突を避ける仕様が働いています。
1
+ Pythonの名前の衝突を避ける仕様が働いています。
2
2
 
3
3
 
4
4
 
@@ -12,4 +12,6 @@
12
12
 
13
13
 
14
14
 
15
+ [9.6. プライベート変数](https://docs.python.org/ja/3.5/tutorial/classes.html)
16
+
15
17
  > クラスのプライベートメンバについて適切なユースケース(特にサブクラスで定義された名前との衝突を避ける場合)があるので、マングリング(name mangling) と呼ばれる、限定されたサポート機構があります。 __spam (先頭に二個以上の下線文字、末尾に一個以下の下線文字) という形式の識別子は、 _classname__spam へとテキスト置換されるようになりました。ここで classname は、現在のクラス名から先頭の下線文字をはぎとった名前になります。このような難号化 (mangle) は、識別子の文法的な位置にかかわらず行われるので、クラス定義内に現れた識別子全てに対して実行されます。