python - Tornado PeriodicCallback 将创建一个新的上下文
问题描述
我在 Python Tornado 中遇到了 PeriodicCallback 的一些奇怪行为。
from tornado.ioloop import PeriodicCallback
class MyClass(object):
def __init__(self):
self.dict = {}
PeriodicCallback(self._check_status, 3000).start()
...
def foo(self):
self.dict["efg"] = 20
print (id(self.dict)) # 1st print
def _check_status(self):
self.dict["abc"] = 10
print ( id(self.dict)) # 2nd print
第一个和第二个打印值不同,这意味着 self.dict 是不同的对象,这会导致严重的问题。这是意外行为。怎么了?
我希望 self.dict 在 foo 和 _check_status 中引用同一个对象。我应该怎么办?
解决方案
推荐阅读
- html - 如何在网格框中围绕已在框内定义填充的内容制作固定的全宽水平线
- php - Wordpress - 在产品页面上显示 MySQL 列数据
- javascript - 语言更改时是否调用了 i18n 函数?
- postman - 验证字段 null 或非 null,错误:无效的 Chai 属性:toBe。您指的是 “to” 吗?
- c++ - 错误:表达式不能用作函数
- git - 无法分叉 DevOps git repo - 不支持服务
- java - 如何在测试中从私有方法的返回值中获取值
- node.js - WebStorm 中 node.js 的 Intellisnese
- go - 无法分配给 mapMeasures[ts].Delta
- javascript - 在提交表单之前确认警报 javascript