我有一个类(称为名称),该类具有如下不同的方法:
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]()
,但是这种方法调用失败。有没有办法在一个循环中调用同一类的多个方法?
答案 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()
。