Python入门教程(二十五)Python的作用域

yizhihongxing

Python入门教程(二十五)Python的作用域

在 Python 中,变量并不是在程序中定义的地方都可以访问的,访问权限与变量的定义位置有关,即变量的作用域。Python 的变量作用域分为四种:

  • 局部作用域
  • 闭包函数外的函数
  • 全局作用域
  • 内置作用域

局部作用域

函数内部定义的变量叫做局部变量。只能在函数内部访问,函数外部无法访问。

def foo():
    x = 10            # 局部变量
    print("x =", x)

foo()                  # 输出 x = 10
print("x =", x)        # 函数外部无法访问变量 x,会报错

闭包函数外的函数

如果在函数内部定义的变量需要在函数外部使用,就需要用到闭包函数外的函数(nonlocal)。

def outer():
    x = 10               # 局部变量
    def inner():
        nonlocal x       # 声明 x 为外层函数的变量
        x += 1
        print("inner x =", x)
    inner()
    print("outer x =", x) # 输出 outer x = 11

outer()

全局作用域

在函数外部定义的变量叫做全局变量。可以在整个程序中都访问。

x = 10                # 全局变量
def foo():
    print("x =", x)   # 函数内部可以访问全局变量

foo()                 # 输出 x = 10
print("x =", x)       # 输出 x = 10

如果在函数内部再次定义 x,会隐式地创建一个新的局部变量 x,而非修改全局变量 x 的值。

x = 10                # 全局变量
def foo():
    x = 20            # 创建了一个新的局部变量 x
    print("x =", x)

foo()                 # 输出 x = 20
print("x =", x)       # 输出 x = 10,因为全局变量 x 的值并未被修改

内置作用域

Python 中有一些内置函数和变量,这些函数和变量可以在任何地方使用。例如内置函数 print()、内置变量 TrueFalse 等等。这些函数和变量的访问权限最高,被称为内置作用域。

def foo():
    print(max([2, 3, 1, 5])) # 内置函数 max()
    print(min([2, 3, 1, 5])) # 内置函数 min()
    print(True)              # 内置变量 True
    print(False)             # 内置变量 False

foo()

执行上述代码,输出如下:

5
1
True
False

以上就是关于 Python 变量作用域的简单介绍。在代码编写过程中,要注意变量的作用域,避免变量的定义混淆,导致程序出现错误。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python入门教程(二十五)Python的作用域 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • 详解pyqt中解决国际化tr()函数不起作用的问题

    下面我将详细讲解如何解决 PyQt 中 tr() 函数不起作用的问题。 问题描述 PyQt 中的 tr() 函数是用于实现国际化的函数,但有时候在程序中使用 tr() 函数时,它却不起作用,导致界面不能实现国际化。 解决方案 解决这个问题的方法是需要使用 PyQt 中提供的 QTranslator 类来加载翻译文件。具体步骤如下: 创建一个翻译器 在 PyQ…

    python 2023年6月6日
    00
  • pandas快速处理Excel,替换Nan,转字典的操作

    下面我将介绍一下“pandas快速处理Excel,替换Nan,转字典的操作”的完整攻略。 步骤一:安装pandas库 在使用pandas之前,我们需要先安装pandas库。如果你还没有安装,可以在命令行中输入以下命令进行安装: pip install pandas 步骤二:导入pandas库 在开始使用pandas之前,我们需要先导入pandas库: imp…

    python 2023年5月13日
    00
  • Python 库 PySimpleGUI 制作自动化办公小软件的方法

    导入PySimpleGUI库 首先,需要在Python中安装PySimpleGUI库。可以使用 pip install PySimpleGUI 命令进行安装。然后,在Python代码中使用import语句导入PySimpleGUI库。 import PySimpleGUI as sg 设计GUI界面 在使用PySimpleGUI制作自动化办公小软件时,首先需…

    python 2023年5月19日
    00
  • python分析网页上所有超链接的方法

    要分析网页上的所有超链接,可以使用 Python 中的 requests 库获取 HTML 页面,再使用 BeautifulSoup 库解析 HTML 代码,从而获取所有的超链接信息。 下面是详细的Python代码,可以实现获取一个网站上的所有超链接: import requests from bs4 import BeautifulSoup url = ‘…

    python 2023年6月3日
    00
  • python游戏库pygame经典教程(推荐!)

    Python游戏库Pygame经典教程(推荐!) 简介 Pygame是用于展示图形、播放音乐和处理用户输入的Python游戏开发库。本篇攻略将详细讲解Pygame的使用方法,包括安装、常用功能和示例。 安装 使用pip可以方便地安装Pygame: pip install pygame 常用功能 创建游戏窗口 在Pygame中,可以使用pygame.displ…

    python 2023年5月30日
    00
  • python操作微信自动发消息的实现(微信聊天机器人)

    准备工作 首先需要先安装itchat库,可以通过pip安装: pip install itchat 接着在微信中扫码登录,代码如下: import itchat itchat.auto_login(hotReload=True) # 运行代码后会出现一个二维码,扫描即可登录微信 实现自动回复功能 为了实现自动回复功能,需要在itchat库的基础上编写一个回调…

    python 2023年5月19日
    00
  • Python之进行URL编码案例讲解

    Python之进行URL编码案例讲解 什么是URL编码? URL编码,又称百分号编码,是一种用来对URL中的特殊字符进行编码的方法。URL中包含各种各样的字符,但是有一些特殊字符不能直接在URL中使用,比如空格、#、?等。这些特殊字符需要经过编码,才能被放入URL中,否则会引起URL解析错误。 如何进行URL编码? Python中可以使用urllib.par…

    python 2023年5月13日
    00
  • python Matplotlib数据可视化(1):简单入门

    这是一篇关于如何使用Python中的Matplotlib库进行数据可视化的入门攻略。本文将分为以下几个部分来讲解: Matplotlib简介 安装Matplotlib 基本图形绘制 引入数据并进行可视化 一些示例 1.Matplotlib简介 Matplotlib是一个用于创建静态、动态和交互式图表的Python库。Matplotlib被广泛应用于科学计算、…

    python 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部