我有一个带有创建时间表的方法的类(为简化起见,它被简化了):
def create_schedule(self):
# Create a function-1 event
scheduler.add_job(self.function_1,
trigger='date',
run_date=datetime_1,
args=[self])
# Create a function-2 event
scheduler.add_job(self.function_2,
trigger='date',
run_date=datetime_2,
args=[self])
这些是类function_1和function_2方法:
def function_1(self, *args):
print('self in function_1:', self)
def function_2(self, *args):
print('self in function_2:', self)
由于某种原因,当它从调度程序执行两个事件时,将显示以下内容:
self in function_1: <program.my_class object at 0x6f03e430>
self in function_2: <program.my_class object at 0x6f03e4b0>
也就是说,这两个对象是不同的,因此所做的更改function_1不会在中出现,function_2反之亦然。
这是为什么?所指向的所有实例不应该都self一样吗?有没有办法避免这种情况,并迫使所有selfs实际指向同一实例?
相关分类