Python变量作用域(四个主要作用域)

作者:

文章目录
  • 局部作用域 嵌套函数作用域 全局作用域 内置作用域
  • def my_function(): x = 10 # 局部变量 print(x) # 可以访问 my_function() # 输出: 10 # print(x) # 这里会报错,x在函数外部不可访问
  • 在嵌套函数中,内部函数可以访问外部函数的变量。 def outer(): x = “outer” # 嵌套作用域变量 def inner(): print(x) # 可以访问外部函数的变量 inner() outer() # 输出: outer
  • 在模块级别定义的变量具有全局作用域。 x = “global” # 全局变量 def my_function(): print(x) # 可以访问全局变量 my_function() # 输出: global print(x) # 输出: global
  • 在Python中,内置作用域(Built-in Scope) 是最外层的作用域,包含了所有内置函数、异常和对象,如print(), len(), True等 内置作用域中的名称在任何地方都可用,无需导入: # 这些函数都来自内置作用域 print(“Hello, World!”) # print 是内置函数 len([1, 2, 3]) # len 是内置函数 max(1, 2, 3) # max 是内置函数
  • 当不同作用域有同名变量时,内部作用域的变量会"遮蔽"外部作用域的变量。 x = “global” def test(): x = “local” # 遮蔽了全局变量x print(x) # 输出: local test() print(x) # 输出: global
  • 目录
    • 四种主要作用域
    • 1. 局部作用域
    • 2. 嵌套函数作用域
    • 3. 全局作用域
    • 4. 内置作用域
    • 常用的内置函数分类
      • 数学函数
      • 类型转换
      • 输入输出
      • 内置异常
    • 5.变量遮蔽问题
      • 6.修改作用域的关键字
        • global 关键字
        • nonlocal关键字

      在程序中定义一个变量时,这个变量是有作用域的,变量的作用范围被称为它的作用域。

      1. 局部作用域
      2. 嵌套函数作用域
      3. 全局作用域
      4. 内置作用域

      def my_function():
          x = 10  # 局部变量
          print(x)  # 可以访问
      my_function()  # 输出: 10
      # print(x)  # 这里会报错,x在函数外部不可访问

      在嵌套函数中,内部函数可以访问外部函数的变量。

      def outer():
          x = "outer"  # 嵌套作用域变量
          def inner():
              print(x)  # 可以访问外部函数的变量
          inner()
      outer()  # 输出: outer

      在模块级别定义的变量具有全局作用域。

      x = "global"  # 全局变量
      def my_function():
          print(x)  # 可以访问全局变量
      my_function()  # 输出: global
      print(x)       # 输出: global

      在Python中,内置作用域(Built-in Scope) 是最外层的作用域,包含了所有内置函数、异常和对象,如print(), len(), True等

      内置作用域中的名称在任何地方都可用,无需导入:

      # 这些函数都来自内置作用域
      print("Hello, World!")  # print 是内置函数
      len([1, 2, 3])         # len 是内置函数
      max(1, 2, 3)           # max 是内置函数

      # 数值计算
      print(abs(-5))      # 绝对值: 5
      print(round(3.14159, 2))  # 四舍五入: 3.14
      print(pow(2, 3))    # 幂运算: 8
      print(divmod(10, 3)) # 商和余数: (3, 1)

      # 类型转换函数
      print(int("123"))    # 字符串转整数: 123
      print(float("3.14")) # 字符串转浮点数: 3.14
      print(str(123))      # 转字符串: "123"
      print(bool(0))       # 转布尔值: False

      # 输入输出函数
      name = input("请输入你的名字: ")
      print(f"你好, {name}!")

      # # 文件操作
      with open('text.txt', 'w') as f:
              f.write("Hello, World!")

      # 常见内置异常
      try:
          x = 1 / 0
      except ZeroDivisionError as e:  # ZeroDivisionError是内置异常
          print(f"捕获到异常: {e}")
      # 其他常见内置异常
      builtin_exceptions = [
          'ArithmeticError', 'AssertionError', 'AttributeError',
          'EOFError', 'ImportError', 'IndexError', 'KeyError',
          'KeyboardInterrupt', 'NameError', 'TypeError', 'ValueError'
      ]

      当不同作用域有同名变量时,内部作用域的变量会"遮蔽"外部作用域的变量。

      x = "global"
      def test():
          x = "local"  # 遮蔽了全局变量x
          print(x)     # 输出: local
      test()
      print(x)         # 输出: global

      用于在函数内部修改全局变量。

      x = 10
      def modify_global():
          global x
          x = 20  # 修改全局变量
      modify_global()
      print(x)  # 输出: 20

      用于在嵌套函数中修改外部函数的变量。

      def outer():
          x = 10
          def inner():
              nonlocal x
              x = 20  # 修改外部函数的变量
          inner()
          print(x)  # 输出: 20
      outer()

      到此这篇关于Python变量作用域(四个主要作用域)的文章就介绍到这了,更多相关Python变量作用域内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

      您可能感兴趣的文章:

      • 一文全面详解Python变量作用域
      • Python变量的作用域使用
      • Python中函数相关的变量作用域
      • Python中变量的作用域详解
      • 深入了解Python 变量作用域
      • python中for循环变量作用域及用法详解
      • Python中的变量和作用域详解

      站内搜索