我正在尝试将方法添加到基于列表的类中。
class _Roles(object):
"""
set the roles for dev, staging and production
"""
def __init__(self):
from types import MethodType
steps = ['dev','stage','prod']
for step in steps:
def env_setter(self):
print step
method = MethodType(env_setter,self,self.__class__)
setattr(self,step,method)
问题是,当我调用_Roles.dev()
、_Roles.stage()
或时_Roles.prod()
,我总是会打印出prod的最后一步,而不是得到devdev()
等等。这是什么原因?