use*_*133 1 python iteration methods list
我真的希望有一些方法可以做到这一点:
如何在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
Run Code Online (Sandbox Code Playgroud)
我希望能够像这个列表一样编写一个可迭代的对象:
instructions=[shrink,grow,shrink,shrink,grow,invert]
Run Code Online (Sandbox Code Playgroud)
要在以后运行for循环:
elephant=someClass(90)
sizeList=[]
for ins in instructions:
elephant.ins()
sizeList.append(elephant.size)
Run Code Online (Sandbox Code Playgroud)
我以前做过类似功能的事情,不能用方法做到这一点会要求我重写一些令人生畏的代码...
instructions = ["shrink","grow","shrink"]
for i in instructions:
getattr(elephant,i)()
Run Code Online (Sandbox Code Playgroud)