Я столкнулся с каким-то странным поведением PeriodicCallback в Python Tornado.
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
Значение 1-го и 2-го отпечатка различается, что означает, что self.dict - это разные объекты, что вызывает серьезную проблему. Это неожиданное поведение. Что случилось?
Я хочу, чтобы self.dict ссылался на один и тот же объект в foo и _check_status. Что мне делать?
@Sraw да, обновил свой вопрос. Спасибо!
Интересно, как использовать этот MyClass
на практике? Не могли бы вы предоставить что-нибудь еще? Иногда вы неявно создаете несколько экземпляров.
Приведенного вами кода недостаточно для осмысленного ответа, поскольку причина проблемы выходит за рамки этой области.
Что такое
it
? Вы имеете в видуid
?