首页 > 解决方案 > 如何在 Python 中同一类对象的 2 个实例中触发方法?

问题描述

我有同一个类(State)的 2 个实例(st0,st1),其中有 2 个方法。不知何故,当st0loc_st()被调用,我想要那个st1rem_st()被自动触发。如何使用 Python OOP 实现该目的?抱歉,代码看起来有点幼稚,但它是一个简化的模型,节省了阅读工作量。

import random
class State(object):

    def __init__(self) -> None:
        self.s = ['S0', 'S1', 'S2']

    def loc_sc(self):
        # how to trigger a remote method in different class?
        print (self.s)

    def rem_sc(self):
        random.shuffle(self.s)
        print (self.s)

if __name__ == '__main__':
    st0 = State()
    st1 = State()
    # how can I trigger st1.rem_sc() automatically 
    #  when st0.loc_sc is called  
    st0.loc_sc()

标签: pythonoop

解决方案


两个实例互不认识。所以这不是一个推荐的情况,但是如果你真的想这样做,请将你的所有实例恢复到一个列表中,当你想触发其中一个时,只需循环查找它。这是答案!可以帮助你。


推荐阅读