回答編集履歴

2

組み込み関数に被るので変数名を変更

2020/08/11 05:30

投稿

teamikl
teamikl

スコア8740

test CHANGED
@@ -142,11 +142,11 @@
142
142
 
143
143
 
144
144
 
145
- def async_eval(src, vars=None):
145
+ def async_eval(src, variables=None):
146
-
146
+
147
- if not vars:
147
+ if not variables:
148
-
148
+
149
- vars = {}
149
+ variables = {}
150
150
 
151
151
  # XXX: コルーチンにするには、最低限一つの await を含む必要が有る為
152
152
 
@@ -154,7 +154,7 @@
154
154
 
155
155
  # ここは、他により良い解決策があるかもしれません。
156
156
 
157
- return eval(async_compile("\n".join([src, "await asyncio.sleep(0)"])), globals(), vars)
157
+ return eval(async_compile("\n".join([src, "await asyncio.sleep(0)"])), globals(), variables)
158
158
 
159
159
 
160
160
 

1

コード修正

2020/08/11 05:30

投稿

teamikl
teamikl

スコア8740

test CHANGED
@@ -72,7 +72,7 @@
72
72
 
73
73
  mode="exec",
74
74
 
75
- file="",
75
+ filename="<discord>",
76
76
 
77
77
  flags=ast.PyCF_ALLOW_TOP_LEVEL_AWAIT)
78
78
 
@@ -154,7 +154,7 @@
154
154
 
155
155
  # ここは、他により良い解決策があるかもしれません。
156
156
 
157
- return eval(async_compile(src + "\n" + "await asyncio.sleep(0)"), globals(), vars)
157
+ return eval(async_compile("\n".join([src, "await asyncio.sleep(0)"])), globals(), vars)
158
158
 
159
159
 
160
160