繁体   English   中英

如何更有效地触发class里面的function?

[英]How to trigger function inside class more effectively?

我正在使用 class 方法用 Python 构建一个 model,并且 class 中有一些函数。

我的 model 的结构是这样的:

class testing ():
    def __init__ (self, number, lane, position):
        self.number = number
        self.lane = lane
        self.position = position
    def function_a (self):
        print('function_a')
    def function_b(self):
        print('function_b')
    def function_c(self):
        print('function_c')
    def function_d(self):
        print('function_d')

Function b需要在function a触发后触发。所以,我又写了一个function来解决这个问题,其中r1,r2 r3是class下的各个object的名字。那个88340040888的结构是这样的:6589

def A_then_B ():
    r1.function_a()
    r2.function_a()
    r3.function_a()
    r1.function_b()
    r2.function_b()
    r3.function_b()

它看起来只有 3 个对象,但在 class 方法下有 24 个对象。 而function本身会变得超长而且效果不够。 那么,我如何修改我的 function,使其在做同样的工作时不会太长(所有对象触发 function a 然后触发 function b)?

将您的对象放入集合中并遍历它们:

def A_then_B ():
   objects = (r1, r2)   # add as many as you have here
   for r in objects:
       r.function_a()
   for r in objects:
       r.function_b()

更好的是,将对象传递给您的函数:

def A_then_B(objects):
   for r in objects:
       r.function_a()
   for r in objects:
       r.function_b()

def C_then_D(objects):
   for r in objects:
       r.function_c()
   for r in objects:
       r.function_d()

objects = (r1, r2)   # add as many as you have here
A_then_B(objects)
C_then_D(objects)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM