Python中文
首页
教程
问答
标签
搜索
登录
注册
如何将当前对象引用(self)传递给timeit模块的Timer类?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我试图将当前的对象引用(即self)传递给timeit模块的Timer类,但不知怎么的,我不知道该怎么做。我试图在timeit文档中找到它,但是我找不到它。我在这个问题上附上了我的代码。在</p> <pre><code>from timeit import Timer import time import math class PollingDemo(Thread): def __init__(self): pass def looper(self): while 1: try: T = Timer("self.my_func()") #T = Timer("polling.my_func()", "from __main__ import polling") time_elapsed = T.timeit(1) if math.ceil(time_elapsed) == 1: print "Process is sleeped for 1 sec" time.sleep(1) except <a href="https://www.cnpython.com/pypi/keyboard" class="inner-link">keyboard</a>Interrupt: return def my_func(self): pass if __name__ == '__main__': polling = PollingDemo() polling.looper() </code></pre> <p>在这个例子中,我试图通过Timer类timeit()方法调用PollingDemo类的_func()方法,但是我得到了“NameError:global name‘self’is not defined”错误。如果我们试图通过<strong>main</strong>来访问该对象,它就会工作(下一个注释行非常有效)。有人能请你解释一下为什么这种行为。<br/> 提前谢谢。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果需要传递参数,只需使用functools中的<em>部分</em>:</p> <pre><code>import functools import timeit def printme(msg): print msg print "Timing: %f" % timeit.timeit(functools.partial(printme, "Hello world")) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
9 回答
如何添加表示整数的擦边字符串?
6 回答
如何添加要在Bokeh中使用的新font.ttf文件?
2 回答
如何添加要显示的矩阵XY轴编号和XY轴
4 回答
如何添加计数?
2 回答
如何添加计数器函数?
9 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
2 回答
如何添加计数器来跟踪while循环中的月份和年份?
1 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
1 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
1 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
10 回答
如何添加评论拉梅尔亚姆
2 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
6 回答
如何添加谷歌地点自动完成到Flask?
4 回答
如何添加超时、python discord bot
2 回答
如何添加超过1dp的检查
5 回答
如何添加距离方法
3 回答
如何添加跟随游戏的敌人精灵
2 回答
如何添加路径以便python可以找到程序?
6 回答
如何添加身份验证/安全性以使用happybase访问HBase?
3 回答