|
循环中的Python Lambda
考虑到以下代码片段:# directorys == {'login': , 'home': }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")}
但是看起来,生成的两个lambda函数完全相同:# Result :self.command == {
"cd login": lambda: self.root.change_directory("login"),
"cd home": lambda: self.root.change_directory("login") # <- Why login ?}
我真的不明白为什么。你有什么建议吗? |