我有代码与labdas,我已经检查每次创建函数对象它是不同的(不引用同一个对象),但它不能像我期望的那样工作.有没有办法如何或我应该使用仿函数来做它,即使我有插入lambda体内的恒定数据?
pairs = [('abc', 'xyz'), ('123', '987'), ('abc', '987')]
pairLambs = []
for p in pairs:
pairLambs.append(lambda: print(p))
pairLambs[0]()
pairLambs[1]()
pairLambs[2]()
Run Code Online (Sandbox Code Playgroud)
输出:
('abc', '987')
('abc', '987')
('abc', '987')
Run Code Online (Sandbox Code Playgroud)
但是我需要:
('abc', 'xyz')
('123', '987')
('abc', '987')
Run Code Online (Sandbox Code Playgroud)