从类的所有实例中调用方法

时间:2018-07-27 00:22:38

标签: python python-3.x methods instances

这个问题听起来有点怪异,但是到目前为止,我一直找不到答案,所以我决定在这里提问:

是否有一种方法可以从类的所有实例中调用方法,而不必手动遍历每个实例?

示例:

通常,我会这样做:

instList = []

class SomeClass:
    def __init__(self,*args,**kwargs):
        #init stuff

        instList.append(self)

    def theThing(self):
        #do the thing

def allTheThings(il):
    for inst in il:
        inst.theThing()

allTheThings(instList)

这通常可以正常工作,但是效率不是很高。有什么方法可以将其简化为一两行代码?

类似这样的东西:

class SomeClass:
    def __init__(self,*args,**kwargs):
        #init stuff

    def theThing(self):
        #do the thing

SomeClass.instances.theThing()

或者这个:

class SomeClass:
    def __init__(self,*args,**kwargs):
        #init stuff

    def theThing(self):
        #do the thing

instancesOf(SomeClass).theThing()

这真的很有帮助,因为我计划以多种不同方式使用它:在游戏结束时自动杀死所有内容,检测单击的各种多边形按钮,以及涉及在一堆中调用单个方法的任何事情实例。

0 个答案:

没有答案