gpt4 book ai didi

python - 如何更有效地触发类内部函数?

转载 作者:行者123 更新时间:2023-12-03 21:57:39 26 4
gpt4 key购买 nike

我正在使用类方法使用 Python 构建模型,并且类中有 serval 函数。

我的模型的结构是这样的:

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')

函数b需要在函数a触发后触发。所以,我写了另一个函数来解决这个问题,其中r1,r2 r3是类下每个对象的名称。该函数的结构是这样的:
def A_then_B ():
r1.function_a()
r2.function_a()
r3.function_a()
r1.function_b()
r2.function_b()
r3.function_b()

看起来只有 3 个对象,但是,类方法下有 24 个对象。而且函数本身会变得超长,不够有效。那么,如何修改我的函数,使其在执行相同的工作时不会太长(所有对象触发函数 a 然后触发函数 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)

关于python - 如何更有效地触发类内部函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61210851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com