相关疑难解决方法(0)

Python Lambda循环

考虑以下代码段:

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

我希望创建一个包含两个函数的字典如下:

# Expected :
self.command == {
    "cd login": lambda: self.root.change_directory("login"),
    "cd home": lambda: self.root.change_directory("home")
}
Run Code Online (Sandbox Code Playgroud)

但看起来生成的两个lambda函数完全相同:

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

我真的不明白为什么.你有什么建议吗 ?

python loops anonymous-function

57
推荐指数
3
解决办法
2万
查看次数

标签 统计

anonymous-function ×1

loops ×1

python ×1