当前位置: 代码网 > it编程>前端脚本>Python > Python变量作用域(四个主要作用域)

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

2025年11月17日 Python 我要评论
在程序中定义一个变量时,这个变量是有作用域的,变量的作用范围被称为它的作用域。四种主要作用域局部作用域嵌套函数作用域全局作用域内置作用域1. 局部作用域def my_function(): x

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

四种主要作用域

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

1. 局部作用域

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

2. 嵌套函数作用域

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

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

3. 全局作用域

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

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

4. 内置作用域

在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'
]

5.变量遮蔽问题

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

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

6.修改作用域的关键字

global 关键字

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

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

nonlocal关键字

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

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

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

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com