如何在 python 中创建要应用于对象的方法列表?
给定一些任意类:
class someClass:
def __init__(self, s):
self.size = s
def shrink(self):
self.size -= 1
def grow(self):
self.size += 1
def invert(self):
self.size = -self.size
我希望能够编写一个像这样的列表的可迭代对象:
instructions = [shrink, grow, shrink, shrink, grow, invert]
稍后通过 for 循环运行:
elephant = someClass(90)
sizeList = []
for ins in instructions:
elephant.ins()
sizeList.append(elephant.size)
我以前用函数做过类似的事情。如果无法使用方法来做到这一点,我将需要重写数量惊人的代码...
请您参考如下方法:
您可以创建方法名称 的列表,然后使用getattr()访问方法:
instructions = ["shrink", "grow", "shrink"]
for i in instructions:
getattr(elephant, i)()
