回答編集履歴

3

追記

2019/11/18 02:47

投稿

hayataka2049
hayataka2049

スコア30935

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  - 無理やりできる方法があったとして(呼び出し元の構文情報を渡すとか)、やるべきではないと感じます。
4
4
 
5
- - 次善の策として`locals()`([ドキュメント](https://docs.python.org/ja/3/library/functions.html#locals))を渡して書き換えるという発想が出てくるかもしれませんが、書き換え不可能です。
5
+ - 次善の策として`locals()`([ドキュメント](https://docs.python.org/ja/3/library/functions.html#locals))を渡して書き換えるという発想が出てくるかもしれませんが、これは書き換え不可能ですからできません
6
6
 
7
7
  - 名前空間の代わりに使う辞書を自分で作れば、↑相当の処理は可能でしょう。こんな感じです。できるけど何か利点はあるかなぁ・・・静的解析ツールなどの支援もこれだと受けられないでしょう。
8
8
 

2

ミス

2019/11/18 02:47

投稿

hayataka2049
hayataka2049

スコア30935

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  - 次善の策として`locals()`([ドキュメント](https://docs.python.org/ja/3/library/functions.html#locals))を渡して書き換えるという発想が出てくるかもしれませんが、書き換え不可能です。
6
6
 
7
- - 名前空間の代わりに使う辞書を自分で作れば、↑相当の処理は可能でしょう。こんな感じです。できるけど何か利点はあるかなぁ・・・
7
+ - 名前空間の代わりに使う辞書を自分で作れば、↑相当の処理は可能でしょう。こんな感じです。できるけど何か利点はあるかなぁ・・・静的解析ツールなどの支援もこれだと受けられないでしょう。
8
8
 
9
9
  ```python
10
10
 
@@ -28,10 +28,12 @@
28
28
 
29
29
  GetSelfVariableNameClass("y", names)
30
30
 
31
- print(y.variable_name) # => 'y'
31
+ # 以後ローカル変数yを書く代わりにnames["y"]と書くことにする
32
32
 
33
33
 
34
34
 
35
- # 以後ローカル変数yを書く代わりにnames["y"]と書くことにする
35
+ print(names["y"].variable_name) # => 'y'
36
+
37
+
36
38
 
37
39
  ```

1

追記

2019/11/18 02:46

投稿

hayataka2049
hayataka2049

スコア30935

test CHANGED
@@ -1,4 +1,4 @@
1
- - 無理では? と思います。まったく想定されていない動作なのです。
1
+ - 直感的には無理では? と思います。言語仕様上、まったく想定されていない動作なのです。
2
2
 
3
3
  - 無理やりできる方法があったとして(呼び出し元の構文情報を渡すとか)、やるべきではないと感じます。
4
4