python函数作用域
发布日期:2021-05-14 21:58:12 浏览次数:16 分类:博客文章

本文共 3128 字,大约阅读时间需要 10 分钟。

python������������������

���python���,���������������������������������

name = 'xiaoyafei'def change_name():    name = '���������'    print('���change_name������name:',name)change_name()  # ������������print("������������name:",name)

������������������:

���change_name������name: ���������������������name: xiaoyafei

���������������������������������������������������������?

age = 15def func():    print('���������age:',age)  # ���������age: 15    def func2():        age = 73        print("func2������age:",age)  # func2������age: 73        def func3():            age = 84            print("func3������age:",age)  # func3������age: 84        func3()  # ������func3������    func2()  # ������func2������func()

������������������������,���������������������������������������������������������,���������������������������������������������������?

age = 15def func():    print('���������age:',age)  # ���������age: 15    def func2():        print("func2������age:",age)  # func2������age: 15  # ������������,������������������������������age������,������������������������        def func3():            age = 84            print("func3������age:",age)  # func3������age: 84        func3()  # ������func3������    func2()  # ������func2������func()

������,������������������������,���������������������������������������������������������,���������������:������������������������������,func2������������age������,������������������������������������age = 15���?

������������������������������������������������������������:

���������������LEGB

  • L:locals ������������������������,���������������������������
  • E:enclosing ���������������������������������,���������������������,���������������:func2���������age���������������func������������
  • G:globals ������������
  • B:builtins ���������������������������

������,������������������������������������������?

������������,������name space,���������������������������������������,������������������?������������,x = 1 ,1���������������������,���������������x������������������?������������������������������x���1���������������������

>>> x = 1>>> id(1)1576430608

������������������������3���:

  • locals: ���������������������������������������������������������
  • globals: ������������������������������������������������������
  • builtins: ���������������������������

���������������������������������������������������������������������������������.

������������������

  • ������������:������������,������������
  • ������������:������������,������������

���������������������������

level = 'L0'n = 22def func():    level = 'L1'    n = 33    print(locals())  # {'n': 33, 'level': 'L1'}  ������������������python���,���������������������������������,���������������������������    def outer():        n = 44        level = 'L2'        print(locals(),n)  # {'level': 'L2', 'n': 44} 44        def inner():            level = 'L3'            print(locals(),n) # {'level': 'L3', 'n': 44} 44        inner()    outer()func()

��� L --> E --> G -->B ���������������������������������������������������������������������������������������������������������������������������������������������������������������

上一篇:python装饰器
下一篇:python函数基础

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月30日 09时48分51秒