|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- from timeit import Timer
- def t2():
- li=[]
- for i in range(10000):
- li+=[i]
- timer2=Timer('t2()','from __main__ import t2')
- print('+:',timer2.timeit(10000))
复制代码
如代码所示,1.我想知道Timer类里面的第二个参数为什么是from__main__import t2?我看定义上面说的是,第二个参数是setup也就是执行第一个参数'stmt'即代码的语句需进行的设置,为什么不能是from timeit import Timer?没搞懂
2.第一行import语句引入的不应该是个模块吗?为什么它引入了一个类?直接import timeit 可以吗
stmt:用于传入要测试时间的代码,可以直接接受字符串的表达式,也可以接受单个变量,也可以接受函数。传入函数时要把函数申明在当前文件中,然后在 stmt = ‘func()’ 执行函数,然后使用 setup = ‘from __main__ import func’
setup:传入stmt的运行环境,比如stmt中使用到的参数、变量,要导入的模块等。可以写一行语句,也可以写多行语句,写多行语句时要用分号;隔开语句。
number:要测试的代码的运行次数,默认100000次,对于耗时的代码,运行太多次会比较慢,此时建议自己修改一下运行次数
repeat:指测试要重复几次,每次的结果构成列表返回,默认3次。
1.
这里 __main__ 就表示在当前的代码下,from__main__import t2 就算导入当时代码下的 t2 函数,因为你要前面要进行测试的是 t2() 函数
2.
甲鱼哥模块那课的循环导入的问题,也是导入的是个函数呀,from timeit import Timer 就是导入 timeit 模块中的 Timer ,你可以直接 import timeit
from xxx import yyy 这样的导入,就是指定导入某些方法或模块啥的,而 timeit 没导入的就不能使用
但是 import timeit 将 timeit 模块中能导入的全部导入了,但是很多我们用不到,所以当你用的 timeit 模块的内容时候,你可以选择 第一个导入更为便捷
|
|