Python лямбда в петле

Учитывая следующий фрагмент кода:

# directorys == {'login': <object at ...>, 'home': <object at ...>}
for d in directorys:
    self.command["cd " + d] = (lambda : self.root.change_directory(d))

Я рассчитываю создать словарь из двух функций следующим образом:

# Expected :
self.command == {
    "cd login": lambda: self.root.change_directory("login"),
    "cd home": lambda: self.root.change_directory("home")
}

но похоже, что две сгенерированные лямбда-функции абсолютно одинаковы:

# Result :
self.command == {
    "cd login": lambda: self.root.change_directory("login"),
    "cd home": lambda: self.root.change_directory("login")   # <- Why login ?
}

Я действительно не понимаю, почему. У Вас есть какие-то предложения ?

Ответы на вопрос(3)

Ваш ответ на вопрос