自引用几个不同的对象而不是一个

我有一个带有创建时间表的方法的类(为简化起见,它被简化了):


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实际指向同一实例?


慕容3067478
浏览 120回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python