这是一个封闭范围的例子(它也被称为词法范围吗?)地址:
def outer(a):
def inner():
return a
return inner
if __name__ == '__main__':
inner = outer(10)
print(inner())
此代码也适用于:
def printer():
print(x)
if __name__ == '__main__':
x = 10
printer()
我的问题是:第二个例子中是否使用了“封闭范围”规则?如果是这样,那么在调用点/运行时和定义时这两种类型的封闭作用域之间有什么区别吗?你知道吗
编辑:正如@user2357112指出的,x
是全局的。这个不行:
def printer():
print(x)
def outer(func_print):
x = 10
func_print()
if __name__ == '__main__':
outer(printer)
真是个新手的错误。。。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐