回答編集履歴
3
追記
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
- 直感的には無理では? と思います。言語仕様上、まったく想定されていない動作なのです。
|
2
2
|
- 無理やりできる方法があったとして(呼び出し元の構文情報を渡すとか)、やるべきではないと感じます。
|
3
|
-
- 次善の策として`locals()`([ドキュメント](https://docs.python.org/ja/3/library/functions.html#locals))を渡して書き換えるという発想が出てくるかもしれませんが、書き換え不可能です。
|
3
|
+
- 次善の策として`locals()`([ドキュメント](https://docs.python.org/ja/3/library/functions.html#locals))を渡して書き換えるという発想が出てくるかもしれませんが、これは書き換え不可能ですからできません。
|
4
4
|
- 名前空間の代わりに使う辞書を自分で作れば、↑相当の処理は可能でしょう。こんな感じです。できるけど何か利点はあるかなぁ・・・静的解析ツールなどの支援もこれだと受けられないでしょう。
|
5
5
|
```python
|
6
6
|
|
2
ミス
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
- 直感的には無理では? と思います。言語仕様上、まったく想定されていない動作なのです。
|
2
2
|
- 無理やりできる方法があったとして(呼び出し元の構文情報を渡すとか)、やるべきではないと感じます。
|
3
3
|
- 次善の策として`locals()`([ドキュメント](https://docs.python.org/ja/3/library/functions.html#locals))を渡して書き換えるという発想が出てくるかもしれませんが、書き換え不可能です。
|
4
|
-
- 名前空間の代わりに使う辞書を自分で作れば、↑相当の処理は可能でしょう。こんな感じです。できるけど何か利点はあるかなぁ・・・
|
4
|
+
- 名前空間の代わりに使う辞書を自分で作れば、↑相当の処理は可能でしょう。こんな感じです。できるけど何か利点はあるかなぁ・・・静的解析ツールなどの支援もこれだと受けられないでしょう。
|
5
5
|
```python
|
6
6
|
|
7
7
|
class GetSelfVariableNameClass:
|
@@ -13,7 +13,8 @@
|
|
13
13
|
def main():
|
14
14
|
names = dict()
|
15
15
|
GetSelfVariableNameClass("y", names)
|
16
|
-
|
16
|
+
# 以後ローカル変数yを書く代わりにnames["y"]と書くことにする
|
17
17
|
|
18
|
-
|
18
|
+
print(names["y"].variable_name) # => 'y'
|
19
|
+
|
19
20
|
```
|
1
追記
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
- 無理では? と思います。まったく想定されていない動作なのです。
|
1
|
+
- 直感的には無理では? と思います。言語仕様上、まったく想定されていない動作なのです。
|
2
2
|
- 無理やりできる方法があったとして(呼び出し元の構文情報を渡すとか)、やるべきではないと感じます。
|
3
3
|
- 次善の策として`locals()`([ドキュメント](https://docs.python.org/ja/3/library/functions.html#locals))を渡して書き換えるという発想が出てくるかもしれませんが、書き換え不可能です。
|
4
4
|
- 名前空間の代わりに使う辞書を自分で作れば、↑相当の処理は可能でしょう。こんな感じです。できるけど何か利点はあるかなぁ・・・
|