gpt4 book ai didi

python - 如何在具有相似名称和相同类型的多个对象上调用方法?

转载 作者:行者123 更新时间:2023-11-28 17:02:57 26 4
gpt4 key购买 nike

我该如何简化这段代码,最好是将其放入一个循环或一行中?

object1.callMethod()  
object2.callMethod()
object3.callMethod()

difObject1.callDifMethod()
difObject2.callDifMethod()
difObject3.callDifMethod()

我知道我可以将对象放在一个列表中并对其进行迭代,但是,这仍然需要两个单独的循环和两个单独的列表。有什么方法可以制作 [1,2,3] 的单数列表并使用它来区分每种类型的三个不同对象,因为数字也在对象名称中?

最佳答案

getattr(object, method_name)()

如果所有的方法和对象名称一般都是语义化的,那么可以使用getattr来引用基于字符串变量的方法,然后用()调用。

objects = [object1, object2, object3]
for object in objects:
getattr(object, method_name)()

如果您想并行运行对象/方法,请使用zip

objects = [object1, object2, object3]
methods = ['method1name', 'method2name', 'method3name']
for object, method in zip(objects, methods):
getattr(object, method)()

关于python - 如何在具有相似名称和相同类型的多个对象上调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53194612/

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