如何在循环中调用一个类的多个方法?

时间:2019-04-01 15:44:01

标签: python python-3.x loops

我有一个类(称为名称),该类具有如下不同的方法:

alex(),john(),claire(),charles(),luke(),richard(),jen()等

我需要一一调用所有这些方法,例如:

name.alex()
name.john()
name.claire()
name.charles()
name.luke()
name.richard()
name.jen()

...等等

我尝试做的是创建一个名称列表,并循环调用所有方法

names_list = ['alex', 'john, 'claire', 'charles', 'luke', 'richard', 'jen']

for i in range(len(names_list)):
    class_name.names_list[i]()

,但是这种方法调用失败。有没有办法在一个循环中调用同一类的多个方法?

2 个答案:

答案 0 :(得分:2)

好的。存储实际方法:

name = YourClass()
methods = [name.alex,  name.john, name.claire ] # ...

for m in methods:
    m()

我的猜测是您有一个xy-problem-您想做的可能是尝试解决一个可以避免使用其他设计的问题。

每个名称只能使用一种方法,对于大约几百万个名称来说是不切实际的...

答案 1 :(得分:1)

如果您想这样做,可以使用getattr

names_list = ['alex', 'john', 'claire', 'charles', 'luke', 'richard', 'jen']

for name in names_list:
    getattr(class_name, name)()

请注意,这假设class_name是您的类的实际实例,或者这些方法是staticmethods。否则,您将需要class_name()