Когда я запускаю следующий сценарий, обе лямбды запускают 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()