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

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日

相关文章

  • python 多线程threading程序详情

    下面是关于“Python 多线程 threading 程序详情”的完整攻略。 概述 多线程是指在同一时间可以运行多个线程,这样可以使程序的执行更加高效。在 Python 中,多线程通过 threading 模块来实现。threading 模块中的 Thread 类可以创建一个线程对象。 创建线程对象 使用 Thread 类创建线程对象时,需要实现一个 run…

    python 2023年5月18日
    00
  • Python 面向对象编程详解

    Python面向对象编程详解 Python是一种面向对象的编程语言,它支持面向对象编程(OOP)的所有特性,包括封装、继承和多态。本文将详细讲解Python面向对象编程的概念、法和示例。 面向对象编程的概念 面向对象编程是一种编程范式,它将数据和操作数据的方法组在一起,形成对象。对象可以看作是一个实,具有属性和方法。面向对象编程的核心思想是将程序看作是一组对…

    python 2023年5月13日
    00
  • python密码学RSA算法及秘钥创建教程

    Python密码学RSA算法及秘钥创建教程 简介 RSA算法是一种公钥密码算法,它可以用于加密和数字签名,是目前最为广泛使用的密码算法之一。本文将详细介绍RSA算法的原理,并通过Python代码示例演示如何使用Python实现RSA算法的秘钥生成和加/解密操作。 RSA算法原理介绍 RSA算法基本原理 RSA算法的基本原理是利用质数分解为难题,具体步骤如下:…

    python 2023年6月3日
    00
  • 如何基于Python + requests实现发送HTTP请求

    以下是关于如何基于Python+requests实现发送HTTP请求的攻略: 如何基于Python+requests实现发送HTTP请求 在Python中,使用requests库可以方便地发送HTTP请求。以下是如何基于Python+requests实现发送HTTP请求的攻略。 发送GET请求 使用requests库发送GET请求时,需要指定请求的URL和请…

    python 2023年5月14日
    00
  • Python词法结构

    下面是Python词法结构的详细讲解。 什么是Python词法结构 Python词法结构是指Python语言中用于表示语义的基本单元,是编译器在对Python源代码进行词法分析时所依据的基本单位。Python词法结构包括注释、标识符、关键字、字面常量、分隔符和运算符等。 注释 注释在Python中以#为起始符号,从#开始到行末均为注释内容,编译器会自动忽略这…

    python 2023年5月20日
    00
  • python scrapy爬虫代码及填坑

    接下来我将为您详细讲解“python scrapy爬虫代码及填坑”的完整攻略。 一、scrapy爬虫代码 Scrapy是一个Python框架,它主要用于抓取Web站点,并从中提取所需的数据。Scrapy由以下三个主要组件组成:Scrapy引擎、调度程序和下载器。在使用Scrapy框架时,您需要编写爬虫代码以定义抓取的目标站点以及所需数据的选择器。以下是一个简…

    python 2023年5月14日
    00
  • python使用cookie库操保存cookie详解

    Python中的Cookie库可用于处理HTTP cookie。 Cookie可用于跟踪用户的会话,并存储用户的偏好设置、购物车等信息。在这里,我将提供一个完整的攻略,讲解如何使用Python的Cookie库来保存和处理cookie信息。 安装Cookie库 首先,需要安装Python的Cookie库。可以通过pip命令来安装。 pip install ht…

    python 2023年5月14日
    00
  • python数据结构之图深度优先和广度优先实例详解

    下面是详细讲解“Python数据结构之图深度优先和广度优先实例详解”的完整攻略。 1. 什么是图? 图是由节点和边组成的一种数据结构。节点表示图中的元素,边表示节点之间的关系。图可以用来解决各种实际问题,如社交网络、地图等。 2. Python实现图的深度优先和广度优先遍历 2.1 深度优先遍历 下面是Python实现图的深度优先遍历的示例: def dfs…

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