質問編集履歴
3
コード修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -84,18 +84,18 @@
|
|
84
84
|
|
85
85
|
```error
|
86
86
|
|
87
|
+
for loops: 0.00000000s on average of 1000 runs.
|
88
|
+
|
87
89
|
Traceback (most recent call last):
|
88
90
|
|
89
|
-
File "
|
91
|
+
File "prog.py", line 28, in <module>
|
90
92
|
|
91
93
|
main()
|
92
94
|
|
93
|
-
File "
|
95
|
+
File "prog.py", line 22, in main
|
94
96
|
|
95
97
|
with simple_timeit("for loops"):
|
96
98
|
|
97
99
|
AttributeError: __enter__
|
98
100
|
|
99
|
-
for loops: 0.00000000s on average of 1000 runs.
|
100
|
-
|
101
101
|
```
|
2
文法の修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
contextmanagerを使って
|
1
|
+
contextmanagerを使ってIPythonの%%timeitのようなものをつくりたい
|
test
CHANGED
@@ -4,19 +4,15 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
|
7
|
+
下記のコードを書いてみたのですが、`AttributeError: __enter__`が出てしまいます。
|
8
8
|
|
9
|
-
|
9
|
+
`contextmanager_timer()`の部分を`return contextmanager_timer()`とするとエラーは出ないのですが、1度しか実行されないためにコードの意味がなくなります。
|
10
10
|
|
11
11
|
どう書き換えればよいでしょうか?
|
12
12
|
|
13
13
|
|
14
14
|
|
15
15
|
また、計測する処理に`print()`などが含まれていた場合`os.devnull`に流して静かに実行することも考えているのですが、そちらについてもアドバイスがあれば伺いたいです。
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
[関数をcontextmanager, decoratorの両方に対応させることはできるか? | teratail](https://teratail.com/questions/246980)
|
20
16
|
|
21
17
|
|
22
18
|
|
1
誤字
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,12 +1,16 @@
|
|
1
|
-
`contextmanager`を使って`with`内の処理を複数回実行し平均の速度を計る機能を考えています。
|
1
|
+
`contextmanager`を使って`with`ブロック内の処理を複数回実行し平均の速度を計る機能を考えています。
|
2
2
|
|
3
3
|
JupyterNotebooksなどのIPython系での`%%timeit`の簡易版と思っていただければと思います。
|
4
|
+
|
5
|
+
|
4
6
|
|
5
7
|
以前の下記質問を参考にコードを書いてみたのですが、`AttributeError: __enter__`が出てしまいます。
|
6
8
|
|
7
9
|
どうも、`contextmanager_timer()`の部分を`return contextmanager_timer()`とするとエラーは出ないのですが、1度しか実行されないためにコードの意味がなくなります。
|
8
10
|
|
9
11
|
どう書き換えればよいでしょうか?
|
12
|
+
|
13
|
+
|
10
14
|
|
11
15
|
また、計測する処理に`print()`などが含まれていた場合`os.devnull`に流して静かに実行することも考えているのですが、そちらについてもアドバイスがあれば伺いたいです。
|
12
16
|
|