【发布时间】:2012-10-02 21:31:42
【问题描述】:
我真的希望有办法做到这一点:
如何在 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)
我以前用函数做过类似的事情,不能用方法做到这一点需要我重写大量的代码......
【问题讨论】:
-
请注意:
invert(self)的正文应该是self.size= -self.size,或者,不太可能是def invert(self, size)的签名。 -
你也可以使用
someClass.__dict__[ins](elephant),否则getattr()就可以了。
标签: python list methods iteration