Table of Contents
总结平时自己注意到的一些陷阱。以后拿来当面试题也不错:)
for 循环体的作用域
def func(): foo = 'aaa' bar = ['bbb'] for foo in bar: pass print("foo: %s" % foo) func()
输出多少?'aaa' 还是 'bbb'?
答案是 'bbb',因为 Python 的循环体并不构成单独作用域,和 C/C++ 不一样。
写了好几年才发现这个问题……
总结平时自己注意到的一些陷阱。以后拿来当面试题也不错:)
def func(): foo = 'aaa' bar = ['bbb'] for foo in bar: pass print("foo: %s" % foo) func()
输出多少?'aaa' 还是 'bbb'?
答案是 'bbb',因为 Python 的循环体并不构成单独作用域,和 C/C++ 不一样。
写了好几年才发现这个问题……