我有一个文件与3打印声明,所有必要。就像这样,
def method1(n: int, m: int, matrix: list) -> list:
for i in range(m):
if i % 2 == 0:
for j in range(n):
print(str(matrix[i][j]), end=" ") # <-- 1
else:
for j in range(n - 1, -1, -1):
print(str(matrix[i][j]), end=" ") # <-- 2
if __name__ == "__main__":
from timeit import timeit
matrix = [[10, 20, 30, 40], [15, 15, 25, 55], [17, 19, 17, 18], [1, 8, 9, 2]]
print(timeit(lambda: method1(4, 4, matrix), number=10000)) # <-- 3现在,我在一个大型项目中有类似的文件,我想检查每个方法运行所需的时间,因此只需要3,而rest就不需要了,但是如果我运行目录中的所有文件,比如1和2,就会造成许多杂乱,再加上其他文件中类似的冗余print语句。
我试过什么?
return语句--只要我能做到--但是假设有一些方法我会遇到这样的语句,if something:
print(ans)
ans += 1将print与return交换的地方是行不通的。
yield函数,它创建了一个生成器函数,它基本上可以工作,但它会篡改timeit模块的结果。#单行注释,这是最好的方法,但如果我注释行1和2,那么这个方法就会中断。print语句。发布于 2021-02-11 03:11:37
可能在sys.stdout期间将timeit设置为/dev/null
if __name__ == "__main__":
from timeit import timeit
import sys
matrix = [[10, 20, 30, 40], [15, 15, 25, 55], [17, 19, 17, 18], [1, 8, 9, 2]]
stdout = sys.stdout
with open('/dev/null', 'w') as sys.stdout:
t = timeit(lambda: method1(4, 4, matrix), number=10000)
sys.stdout = stdout
print(t) # <-- 3https://stackoverflow.com/questions/66148112
复制相似问题