回答編集履歴
2
Update
answer
CHANGED
@@ -7,19 +7,25 @@
|
|
7
7
|
import re
|
8
8
|
import inspect
|
9
9
|
|
10
|
+
my_name = inspect.currentframe().f_code.co_name
|
10
|
-
callers_name = inspect.stack()[-1].code_context[0]
|
11
|
+
callers_name = inspect.stack()[-1].code_context[0]
|
11
|
-
callers_name = re.
|
12
|
+
callers_name = re.findall(rf'\s*{my_name}\s*(\s*(.+?)\s*,', callers_name)
|
13
|
+
if callers_name:
|
14
|
+
callers_name = callers_name[0]
|
15
|
+
else:
|
16
|
+
return
|
17
|
+
|
12
18
|
if callers_name in globals():
|
13
19
|
globals()[callers_name] += value
|
14
20
|
|
15
21
|
if __name__ == '__main__':
|
16
|
-
|
22
|
+
global_variable = 3
|
17
|
-
|
23
|
+
print(f'before = {global_variable}')
|
18
24
|
|
19
|
-
|
25
|
+
arbitrary_add(global_variable, 1)
|
20
|
-
|
26
|
+
print(f' after = {global_variable}')
|
21
|
-
|
27
|
+
|
22
|
-
_ = '''
|
28
|
+
_ = '''
|
23
29
|
before = 3
|
24
30
|
after = 4
|
25
31
|
'''
|
1
Update
answer
CHANGED
@@ -7,8 +7,6 @@
|
|
7
7
|
import re
|
8
8
|
import inspect
|
9
9
|
|
10
|
-
f = inspect.currentframe()
|
11
|
-
v = inspect.getargvalues(f)
|
12
10
|
callers_name = inspect.stack()[-1].code_context[0].strip()
|
13
11
|
callers_name = re.sub(r'^.*?(?<=()\s*(.+?)\s*,.*', r'\1', callers_name)
|
14
12
|
if callers_name in globals():
|