回答編集履歴
2
組み込み関数に被るので変数名を変更
answer
CHANGED
@@ -70,13 +70,13 @@
|
|
70
70
|
flags=ast.PyCF_ALLOW_TOP_LEVEL_AWAIT)
|
71
71
|
|
72
72
|
|
73
|
-
def async_eval(src,
|
73
|
+
def async_eval(src, variables=None):
|
74
|
-
if not
|
74
|
+
if not variables:
|
75
|
-
|
75
|
+
variables = {}
|
76
76
|
# XXX: コルーチンにするには、最低限一つの await を含む必要が有る為
|
77
77
|
# コンパイル対象のコードの末尾に await asyncio.sleep(0) を追加してます。
|
78
78
|
# ここは、他により良い解決策があるかもしれません。
|
79
|
-
return eval(async_compile("\n".join([src, "await asyncio.sleep(0)"])), globals(),
|
79
|
+
return eval(async_compile("\n".join([src, "await asyncio.sleep(0)"])), globals(), variables)
|
80
80
|
|
81
81
|
|
82
82
|
async def main():
|
1
コード修正
answer
CHANGED
@@ -35,7 +35,7 @@
|
|
35
35
|
|
36
36
|
async_compile = functools.partial(compile,
|
37
37
|
mode="exec",
|
38
|
-
|
38
|
+
filename="<discord>",
|
39
39
|
flags=ast.PyCF_ALLOW_TOP_LEVEL_AWAIT)
|
40
40
|
|
41
41
|
|
@@ -76,7 +76,7 @@
|
|
76
76
|
# XXX: コルーチンにするには、最低限一つの await を含む必要が有る為
|
77
77
|
# コンパイル対象のコードの末尾に await asyncio.sleep(0) を追加してます。
|
78
78
|
# ここは、他により良い解決策があるかもしれません。
|
79
|
-
return eval(async_compile(
|
79
|
+
return eval(async_compile("\n".join([src, "await asyncio.sleep(0)"])), globals(), vars)
|
80
80
|
|
81
81
|
|
82
82
|
async def main():
|