函数的范围是否与python中变量的范围相同。 例如,我们有变量的全局,局部和非局部范围,是否有全局,局部和非局部函数?
答案 0 :(得分:2)
没有区别。函数是第一类对象,可以像任何其他对象一样绑定到名称。 名称在Python中具有范围。
def
语句类似于赋值语句;它创建一个函数对象,然后将名称绑定到该赋值。例如,以下内容非常相似:
def foo():
return 3
foo = lambda: 3
但是, def
并不是必不可少的,因为单独使用表达式无法定义任意函数。 (lambda
表达式的主体必须是单个表达式本身,而def
语句的主体可以是任意语句列表。)