リストに基づいてクラスにメソッドを追加しようとしています。
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()
と、dev forなどを取得する代わりに、prodである最後のステップが常に出力されることです。これの理由は何ですか?_Roles.stage()
_Roles.prod()
dev()