标签:声明 error ror var 语言 函数 for 查找 variable
# 作用域
# 作用域
## 1.块级作用域
# 外调内(不推荐)
# if 1== 1:
# name=‘小明‘
# print(name)
#
# for i in range(1, 10):
# age = i
# print(age)
# 内调外
sum = 0
for i in range(1, 101):
sum += i
print(sum)
# 在语句块中声明的变量,最好在同一级下进行操作。如果在语句块外引用变量,python并不会报错。但是在其他语言当中静态语言,java c# 报错。
# (不推荐)外层访问内层
# 外层先声明,内层再访问:if for 语句块都可以调用外层声明过的变量。同一级代码可以访问同一级之前声明过得变量。
# 2.局部作用域
# def foo():
# name = ‘小明‘
# return name
# print(foo())
#
# def boo():
# name = ‘xxx‘
# age = 13
# print(name)
# 外部变量: 函数之外的变量。
# 局部变量 local variable: 函数内定义变量。
# 局部变量作用域: 声明这个局部变量的函数内。 不同函数之间不能互相调用各自的局部变量。不同函数的变量相互隔离
# 局部变量的作用域:函数内。 外部直接调用内部变量会报错NameError: name‘name‘ is not dedind。函数内按块级
# 3作用域链
# name = ‘小明‘
# def f1():
# name = ‘小李‘
# def f2():
# name = ‘小猪‘
# print(name)
#
# f2()
# f1()
# 作用域嵌套:例如 全局套着函数1, 函数1套着函数2,地啊哟用变量时会先在当前函数作用域中查找,如果找不到的话,会去上一级函数作用域中查找。 当前层< 父层 < 最外层全局
# 平时代码应该避免函数复杂嵌套,变量作用域把握不准时生命不同名字的变量。
## 练习
name =‘小明‘
def f1():
print(name)
def f2():
name = ‘小红‘
f1()
f2()
# 4 内置作用域
# 在上面的例子中,你可以在任何地方使用print type abs一些函数,函数其实也是一个指向功能的变量。这些函数的作用域是内置作用域
# 作用域范围从小到大: 内层局部 < 全局 < 内置全局
标签:声明 error ror var 语言 函数 for 查找 variable
原文地址:https://www.cnblogs.com/psy0508/p/9973531.html