回答編集履歴

4

コード修正: PEP8

2020/09/05 18:28

投稿

teamikl
teamikl

スコア8760

test CHANGED
@@ -32,9 +32,7 @@
32
32
 
33
33
  coro = None
34
34
 
35
- getCoro = lambda: coro
36
-
37
- coro = func(getCoro, *args, **kw)
35
+ coro = func((lambda: coro), *args, **kw)
38
36
 
39
37
  assert inspect.iscoroutine(coro)
40
38
 

3

コード修正: デコレータ内部の関数にfunctools.wrapsを利用

2020/09/05 18:27

投稿

teamikl
teamikl

スコア8760

test CHANGED
@@ -12,15 +12,21 @@
12
12
 
13
13
  ```python
14
14
 
15
+
16
+
15
17
  import asyncio
16
18
 
17
19
  import inspect
20
+
21
+ import functools
18
22
 
19
23
 
20
24
 
21
25
  def Y(func):
22
26
 
23
27
  assert inspect.iscoroutinefunction(func)
28
+
29
+ @functools.wraps(func)
24
30
 
25
31
  def _func(*args, **kw):
26
32
 
@@ -71,6 +77,8 @@
71
77
  if __name__ == '__main__':
72
78
 
73
79
  asyncio.run(main())
80
+
81
+
74
82
 
75
83
  ```
76
84
 

2

文章の修正

2020/09/05 06:37

投稿

teamikl
teamikl

スコア8760

test CHANGED
@@ -104,7 +104,7 @@
104
104
 
105
105
 
106
106
 
107
- [C言語側での構造体](https://github.com/python/cpython/blob/dd18001c308fb3bb65006c91d95f6639583a3420/Include/cpython/frameobject.h#L41) にはあるかもしれないが、
107
+ 正確には、[C言語側での構造体](https://github.com/python/cpython/blob/dd18001c308fb3bb65006c91d95f6639583a3420/Include/cpython/frameobject.h#L41) にはあるかもしれないが、
108
108
 
109
109
  Pythonからアクセス可能な情報 [PyFrameObject](https://github.com/python/cpython/blob/cb9879b948a19c9434316f8ab6aba9c4601a8173/Objects/frameobject.c#L14)としてはないようです。
110
110
 

1

コード修正(変数名のみ)

2020/09/05 06:30

投稿

teamikl
teamikl

スコア8760

test CHANGED
@@ -11,8 +11,6 @@
11
11
 
12
12
 
13
13
  ```python
14
-
15
-
16
14
 
17
15
  import asyncio
18
16
 
@@ -28,9 +26,9 @@
28
26
 
29
27
  coro = None
30
28
 
31
- currentCoroutine = lambda: coro
29
+ getCoro = lambda: coro
32
30
 
33
- coro = func(currentCoroutine, *args, **kw)
31
+ coro = func(getCoro, *args, **kw)
34
32
 
35
33
  assert inspect.iscoroutine(coro)
36
34
 
@@ -52,9 +50,9 @@
52
50
 
53
51
  @Y
54
52
 
55
- async def async_fn2(getCo):
53
+ async def async_fn2(getCoro):
56
54
 
57
- coro = getCo()
55
+ coro = getCoro()
58
56
 
59
57
  print(coro)
60
58
 
@@ -73,8 +71,6 @@
73
71
  if __name__ == '__main__':
74
72
 
75
73
  asyncio.run(main())
76
-
77
-
78
74
 
79
75
  ```
80
76