python_函数作用域,,py文件:全局作用域


py文件:全局作用域

函数:局部作用域

一个函数是一个作用域
def func():    x = 9    print(x)func()print(x)
作用域中查找数据规则:优先在自己的作用域找数据,自己没有就去“父级”->“父级”->直到全局,全局没有就报错。
x = 10def func():    x = 9    print(x)func()

x = 10
def func():
# x = 9
print(x)
def x1():
# x = 888
print(x)

x1()
func()
子作用域中只能找到父级中的值,默认无法重新为父级的变量进行重新赋值(global.nonlocal可以强制做)。
name = ‘wdc‘def func():    # 这里name是函数中的一个新的变量,和全局作用域中的name没有任何关系。    name = ‘yhf‘    print(name)func()# 这个打印的name还是为‘wdc‘print(name)

name = [11,22,33]
def func():
# 列表为可变类型,用APPEND()方法可以修改列表中的内容
name.append(‘wdc‘)
print(name)
func()
print(name)

name = ‘wdc‘
def func():
# 如果说非要更改全局作用域中的变量可以先用GLOBAL强制修改,可以重新赋值
# 只能改全局变量
global name
name = ‘yhf‘
print(name)
func()
print(name)

name = ‘wdc‘
def func():
name = ‘yhf‘
def func1():
def func2():
# nonlocal 找到上一级变量修改
nonlocal name
name = 888
func2()
func1()
print(name)
func()
print(name)

python_函数作用域

评论关闭