10 函数作用域

py文件:全局作用域

函数:局部作用域

a = 1
def s1():
    x1 = 666
    print(x1)
    print(a)
    print(b)

b = 2
print(a)
s1()
a = 88888
def s2():
    print(a,b)#此时a为8888
    s1() #此时s1中的a为:8888

s2()

总结

一个函数是一个作用域

作用域中查找数据规则:优先在自己的作用域找数据,自己没有就去 "父级" -> "父级" -> 直到全局,全部么有就报错。注意:父级作用域中的值到底是什么?

  • 参数
    • 调用(执行)函数时,传参:位置参数 > 关键字参数
    • 定义函数:
      • def func(a)
      • def func(a,b=None) # 对于默认值,如果是可变类型,----> 坑
      • def func(*args,**kwargs)
  • 作用域
    • 函数为作用域
    • 自己 > 父级 > 父级 > 全局 【读/修改(可变)】
    • 重新赋值:
      • global
      • nonlocal
#示例1
def func():
    x = 9
    print(x)
func()
print(x)

#示例2
x = 10
def func():
    x = 9
    print(x)

func()

posted @ 2024-09-25 22:39  jhchena  阅读(2)  评论(0编辑  收藏  举报