首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从Python 3类的所有实例调用方法

从Python 3类的所有实例调用方法
EN

Stack Overflow用户
提问于 2018-09-19 01:33:25
回答 1查看 0关注 0票数 0

这个问题可能听起来有点奇怪,但到目前为止我一直找不到答案,我决定在这里问:

有没有办法从类的所有实例调用方法而不必手动遍历每个单个实例?

例:

通常,我会做这样的事情:

代码语言:javascript
复制
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)

这通常很好用,但看起来效率不高。有没有办法将其简化为一行或两行代码?

像这样的东西:

代码语言:javascript
复制
class SomeClass:
    def __init__(self,*args,**kwargs):
        #init stuff

    def theThing(self):
        #do the thing

SomeClass.instances.theThing()

或这个:

代码语言:javascript
复制
class SomeClass:
    def __init__(self,*args,**kwargs):
        #init stuff

    def theThing(self):
        #do the thing

instancesOf(SomeClass).theThing()

这将非常有用,因为我打算以多种不同的方式使用它:在游戏结束时自动查杀所有内容,检测被点击的各种多边形按钮,任何涉及在一堆实例上调用单个方法的内容。

EN

回答 1

Stack Overflow用户

发布于 2018-09-19 10:36:39

你通常不会在Python中使用列表推导出错。它们简洁,易读,而且非常快捷

代码语言:javascript
复制
[inst.theThing() for inst in instList]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档