我真的希望有一些方法来做到这一点:创建的方法列表在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)
我已经做过类似的功能之前,无法做到这一点与方法将需要我重写代码的恐吓量...
Duplicate of this:http://stackoverflow.com/questions/7821423/preferable-way-to-dynamically-call-some-objects-method –
只需要注意一点:'invert(self)'应该有自己的身体.size = -self.size',或者不太可能的是'def invert(self,size)'的签名。 – Tadeck
你也可以使用'someClass .__ dict __ [ins](elephant)',否则'getattr()'是好的。 –