返回顶部
首页 > 资讯 > 后端开发 > Python >Python中怎么使用非局部变量
  • 858
分享到

Python中怎么使用非局部变量

2023-06-17 02:06:14 858人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章将为大家详细讲解有关python中怎么使用非局部变量,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。全局变量在 Python 中,在函数之外或在全局范围内声明的变量被称为全局变量。 这

这篇文章将为大家详细讲解有关python中怎么使用非局部变量,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

全局变量

Python 中,在函数之外或在全局范围内声明的变量被称为全局变量。 这意味着,全局变量可以在函数内部或外部访问。

我们来看一个关于如何在 Python 中创建一个全局变量的示例。

示例 1:创建全局变量
x = "global" def foo():    print("x inside :", x) foo()    print("x outside:", x)

当我们运行代码时,将会输出:

x inside : globalx outside: global

在上面的代码中,我们创建了 x 作为全局变量,并定义了一个 foo() 来打印全局变量 x。 ***,我们调用 foo() 来打印x的值。

倘若你想改变一个函数内的 x 的值该怎么办?

x = "global" def foo():    x = x * 2    print(x)foo()

当我们运行代码时,将会输出:

UnboundLocalError: local variable 'x' referenced before assignment

输出显示一个错误,因为 Python 将 x 视为局部变量,而 x 没有在 foo() 内部定义。

为了运行正常,我们使用 global 关键字,查看 PythonGlobal 关键字以便了解更多。

局部变量

在函数体内或局部作用域内声明的变量称为局部变量。

示例 2:访问作用域外的局部变量
def foo():    y = "local" foo()print(y)

当我们运行代码时,将会输出:

NameError: name 'y' is not defined

输出显示了一个错误,因为我们试图在全局范围内访问局部变量 y,而局部变量只能在 foo() 函数内部或局部作用域内有效。

我们来看一个关于如何在 Python 中创建一个局部变量的例子。

示例 3:创建一个局部变量

通常,我们在函数内声明一个变量来创建一个局部变量。

def foo():    y = "local"    print(y) foo()

当我们运行代码时,将会输出:

local

让我们来看看前面的问题,其中x是一个全局变量,我们想修改 foo() 内部的 x

全局变量和局部变量

在这里,我们将展示如何在同一份代码中使用全局变量和局部变量。

示例 4:在同一份代码中使用全局变量和局部变量
x = "global" def foo():    global x    y = "local"    x = x * 2    print(x)    print(y) foo()

当我们运行代码时,将会输出(LCTT 译注:原文中输出结果的两个 global 有空格,正确的是没有空格):

globalgloballocal

在上面的代码中,我们将 x 声明为全局变量,将 y 声明为 foo() 中的局部变量。 然后,我们使用乘法运算符 * 来修改全局变量 x,并打印 xy

在调用 foo() 之后,x 的值变成 globalglobal了(LCTT 译注:原文同样有空格,正确的是没有空格),因为我们使用 x * 2 打印两次 global。 之后,我们打印局部变量y的值,即 local

示例 5:具有相同名称的全局变量和局部变量
x = 5 def foo():    x = 10    print("local x:", x) foo()print("global x:", x)

当我们运行代码时,将会输出:

local x: 10global x: 5

在上面的代码中,我们对全局变量和局部变量使用了相同的名称 x。 当我们打印相同的变量时却得到了不同的结果,因为这两个作用域内都声明了变量,即 foo() 内部的局部作用域和 foo() 外面的全局作用域。

当我们在 foo() 内部打印变量时,它输出 local x: 10,这被称为变量的局部作用域。

同样,当我们在 foo() 外部打印变量时,它输出 global x: 5,这被称为变量的全局作用域。

非局部变量

非局部变量用于局部作用域未定义的嵌套函数。 这意味着,变量既不能在局部也不能在全局范围内。

我们来看一个关于如何在 Python 中创建一个非局部变量的例子。(LCTT 译者注:原文为创建全局变量,疑为笔误)

我们使用 nonlocal 关键字来创建非局部变量。

示例 6:创建一个非局部变量
def outer():    x = "local"     def inner():        nonlocal x        x = "nonlocal"        print("inner:", x)     inner()    print("outer:", x) outer()

当我们运行代码时,将会输出:

inner: nonlocalouter: nonlocal

在上面的代码中有一个嵌套函数 inner()。 我们使用 nonlocal 关键字来创建非局部变量。inner() 函数是在另一个函数 outer() 的作用域中定义的。

关于Python中怎么使用非局部变量就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: Python中怎么使用非局部变量

本文链接: https://lsjlt.com/news/286865.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python中怎么使用非局部变量
    这篇文章将为大家详细讲解有关Python中怎么使用非局部变量,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。全局变量在 Python 中,在函数之外或在全局范围内声明的变量被称为全局变量。 这...
    99+
    2023-06-17
  • c#局部变量怎么给全局使用
    在 c# 中,可以通过以下方法使局部变量作为全局变量使用:声明全局变量,使用 static 关键字。声明共享变量,使用 const 关键字。使用静态方法,该方法不依赖于实例。使用委托,将...
    99+
    2024-05-12
    c#
  • python中全局变量和局部变量有什么区别
    python中全局变量和局部变量有什么区别?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;...
    99+
    2023-06-14
  • Vue 中怎么实现全局变量和局部变量
    本篇文章为大家展示了Vue 中怎么实现全局变量和局部变量,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。局组件和局部组件1.先定义组件   Vue...
    99+
    2024-04-02
  • python全局变量-局部变量用法和区别
    对于很多初学的同学,对全局和局部变量容易混淆,看看下面给大家的讲解相信都应该明白 两者的区别了。 定义:全局变量:在模块内、在所有函数的外面、在class外面局部变量:在函数内、在class的方法内 下面来看看例子函数内部调用全局变量 a=...
    99+
    2023-01-31
    变量 局部 区别
  • Python变量教程之全局变量和局部变量
    目录前言全局变量全局关键字前言 全局变量是那些没有在任何函数内部定义并具有全局范围的变量,而局部变量是那些在函数内部定义的变量,其范围仅限于该函数。换句话说,我们可以说局部变量只能在...
    99+
    2024-04-02
  • python全局变量和局部变量有什么区别
    Python中的全局变量和局部变量的区别如下:1. 作用域:全局变量在整个程序中都是可见的,可以在任何地方访问。而局部变量只在定义它...
    99+
    2023-08-12
    python
  • python基础之局部变量和全局变量
    四种基本的函数类型 局部变量 就是在函数内部定义的变量【作用域仅局限于函数内部】 不同的函数 可以定义相同的局部变量,但是各自用各自的 不会产生影响 局部变量的作用:为了临时...
    99+
    2024-04-02
  • 怎么理解python全局变量,局部变量和命名空间
    本篇内容介绍了“怎么理解python全局变量,局部变量和命名空间”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python 使用全局和局部变...
    99+
    2023-06-22
  • Python之全局与局部变量
    ''' 命名空间 : 每次在python解释器启动之后,就会在内存开辟一块内存空间,每当遇到一个变量时,就会在命名空间中,记录下变量名和值之间的关系,也即记录变量对应的值在内存空间中的            地址;当一个函数时,会在命名空间...
    99+
    2023-01-31
    全局 变量 局部
  • java局部变量怎么赋值给全局变量
    在Java中,局部变量是在方法内部定义的变量,它的作用范围仅限于该方法。全局变量是在类的范围内定义的变量,可以被类中的所有方法访问。...
    99+
    2023-10-10
    java
  • Python中怎么实现函数的局部变量
    本篇文章给大家分享的是有关Python中怎么实现函数的局部变量,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。局部变量当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其...
    99+
    2023-06-17
  • Shell全局变量、局部变量与特殊变量的具体使用
    目录1、全局变量(环境变量):2、局部变量(本地变量):3、关于局部变量的其它一些问题4、Shell的特殊变量:变量类型:全局变量(环境变量)和局部变量(本地变量)环境变量可以在定义它们的shell及其派生出来的任意子进...
    99+
    2023-05-06
    Shell全局变量 Shell局部变量 Shell特殊变量
  • VB.NET中怎么操作局部变量
    本篇文章为大家展示了VB.NET中怎么操作局部变量,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。VB.NET开发工具的出现对开发领域提供了一个全新的编写方式。作为程序员来说,他们又多了一种编程语言的...
    99+
    2023-06-17
  • Golang函数中的变量作用域:局部变量和全局变量
    Golang函数中的局部变量和全局变量,需要具体代码示例 在Golang中,变量的作用域是非常重要的概念。在函数中,我们常常会遇到局部变量和全局变量的情况。这两者在作用域和使用方式上有一些区别,下面我将详细介...
    99+
    2024-01-18
    函数 变量 Golang
  • VB.NET局部静态变量怎么用
    这篇文章主要为大家展示了“VB.NET局部静态变量怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET局部静态变量怎么用”这篇文章吧。VB.NET局部静态变量VB支持用Static关...
    99+
    2023-06-17
  • Python 使用全局变量
    今天在写以下Python代码时出现了问题。该段代码根据一些URL下载视频: #coding=utf-8 def save_case_infos(case_urls): for case_url in case_urls:...
    99+
    2023-01-31
    全局变量 Python
  • 从局部变量和全局变量开始全面解析Python中变量的作用域
    理解全局变量和局部变量 1.定义的函数内部的变量名如果是第一次出现, 且在=符号前,那么就可以认为是被定义为局部变量。在这种情况下,不论全局变量中是否用到该变量名,函数中使用的都是局部变量。例如: ...
    99+
    2022-06-04
    变量 局部 全局变量
  • Python 局部变量global详解
    目录一、作用域二、局部作用域三、全局作用域四、nonlocal作用域1、使用nonlocal2、就近原则3、函数执行顺序4、循环、判断代码块中作用域问题一、作用域 Local:局部作...
    99+
    2024-04-02
  • java中SimpleDateFormat怎么转换局部变量
    这篇文章将为大家详细讲解有关java中SimpleDateFormat怎么转换局部变量,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、说明将SimpleDateFormat定义为局部变量时,每个线程都独...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作