准备迎接装饰器= =
Topic sourcedef count3():
l = []
a = ["学", "到", "这", "我", "想", "哭", "没", "想", "到", "后", "面", "更", "难"]
def f():
print(x, i + "!")
if i == a[-1]:
time.sleep(1)
print("But think later, still insist on")
for x, i in enumerate(a):
l.append(f)
return l
for f in count3():
f()
其实廖老师想告诉的是这个东西。若是函数里面依赖于外部作用域的变量。且该变量能发生或者会发生变化,后面的lazy call就是有意想不到的事情发生。
其实避免很简单。函数里面尽可能使用内部变量,要是有依赖于外部变量,使用参数传进去,看起来比较新颖,只要熟悉点语言,倒也没有什么花俏的东西可以玩。
def count3():
l = []
a = ["学", "到", "这", "我", "想", "哭", "没", "想", "到", "后", "面", "更", "难"]
def f(x,i):
def g():
print(x, i + "!")
if i == a[-1]:
time.sleep(1)
print("But think later, still insist on")
return g
for x, i in enumerate(a):
l.append(f(x,i))
return l
- 1
呆呆的设计师