Когда я запускаю следующий script, оба lambda запускают os.startfile() в том же файле - junk.txt. Я ожидал бы, что каждая лямбда будет использовать значение "f", если было создано лямбда. Есть ли способ заставить это функционировать, как я ожидаю?
import os
def main():
files = [r'C:\_local\test.txt', r'C:\_local\junk.txt']
funcs = []
for f in files:
funcs.append(lambda: os.startfile(f))
print funcs
funcs[0]()
funcs[1]()
if __name__ == '__main__':
main()