我正在通过 The Python Tutorial 学习 Python,我目前正在上课(第 9 章),但是在解释“范围和命名空间”时,我遇到了一个问题。
作者举了一个例子:
def scope_test():
def do_local():
spam = "local spam"
def do_nonlocal():
nonlocal spam
spam = "nonlocal spam"
def do_global():
global spam
spam = "global spam"
spam = "test spam"
do_local()
print("After local assignment:", spam)
do_nonlocal()
print("After nonlocal assignment:", spam)
do_global()
print("After global assignment:", spam)
scope_test()
print("In global scope:", spam)
来源:http ://docs.python.org/3.3/tutorial/classes.html#scopes-and-namespaces-example
据我所知,关键字def
是用来定义函数的,函数是放在类里面的,但是这种情况下他在一个函数里面定义了一个函数,那么这个函数里面的另一个函数叫什么呢?
有没有办法可以从第一个函数的外部访问它?例如,来自包含 scope_test 的命名空间。
当它们是私有方法时,函数内部的这个函数是否会像其他编程语言(如 Java 和 C#)中调用的“辅助方法”一样工作?