4.0 Python 变量与作用域

python,变量,作用域 · 浏览次数 : 13

小编点评

**变量的作用域** **局部作用域** * 在函数内部定义的变量,只能在其被声明的函数内部访问。 * 变量的定义顺序是:L –> E –> G –>B 的规则查找在子程序中定义的变量称为局部变量。 **全局作用域** * 在函数外定义的变量,可以在整个程序的范围内被访问。 **变量的作用域可分为以下几种状态** * **L(Local):**局部作用域 * **E(Enclosing):**闭包函数外的函数中 * **G(Global):**全局作用域 * **B(Built-in):**内建作用域变量的属性与变量的执行依据

正文

在python中,变量的作用域决定了变量在哪些位置可以被访问。一个程序中的变量并不是所有的地方都可以访问的,其访问权限决定于变量的赋值位置。python中有两种最基本的变量作用域:局部作用域和全局作用域。局部变量是在函数内部定义的变量,只能在其被声明的函数内部访问。而全局变量则是在函数外定义的变量,可以在整个程序的范围内被访问。局部变量只有在其被声明的函数内部才能被访问,全局变量则可以在程序的任何地方被访问。变量的作用域对于程序的正确性和可读性非常重要,需要在编写程序时注意变量的赋值位置以及其作用域。

变量的作用域可分为以下几种状态:

  • L(Local):局部作用域
  • E(Enclosing):闭包函数外的函数中
  • G(Global):全局作用域
  • B(Built-in):内建作用域

变量的属性与变量的执行依据:

  • 变量的先后顺序是:L –> E –> G –>B 的规则查找
  • 在子程序中定义的变量称为局部变量
  • 在程序的一开始定义的变量称为全局变量
  • 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序
  • 当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用,在其它地方全局变量起作用
  • 当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字了
  • 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问

全局变量: 如下定义并使用一个全局变量,来看一下效果吧.

>>> import os
>>> import sys
>>> 
>>> sum=100                      #这就是一个全局变量
>>> 
>>> def print_sum():
    print("函数中调用sum: ",sum)

>>> print_sum()                  #函数中可以读取到
函数中调用sum:  100
>>> 
>>> print("函数外调用sum: ",sum)  #外部依然可以读取到
函数外调用sum:  100

局部变量: 如下定义并使用一个局部变量,来看一下效果吧.

>>> import sys
>>> import os
>>> 
>>> def print_sum():
    sum=100
    print("函数中调用sum: ",sum)

>>> print_sum()
函数中调用sum:  100
>>> print("函数外调用sum: ",sum)
函数外调用sum:  <built-in function sum>

局部转全局: 将一个局部变量通过global关键字,转换为全局变量.

>>> import os
>>> import sys
>>> 
>>> def print_num():
    global num
    num=1000
    print("函数内调用: ",num)

>>> print_num()
函数内调用:  1000
>>> 
>>> print("函数外调用: ",num)
函数外调用:  1000

外层非全局: 如果要修改嵌套作用域(enclosing 作用域,外层非全局作用域)中的变量则需要nonlocal关键字声明一下.

>>> import sys
>>> 
>>> def outer():
    num=100
    def inner():
        nonlocal num             #声明成外层非全局作用域
        num=1000
        print("inner层:",num)
    inner()
    print("outer层:",num)

>>> outer()
inner层: 1000
outer层: 1000

本文作者: 王瑞
本文链接: https://www.lyshark.com/post/43aec37f.html
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

与4.0 Python 变量与作用域相似的内容:

4.0 Python 变量与作用域

在python中,变量的作用域决定了变量在哪些位置可以被访问。一个程序中的变量并不是所有的地方都可以访问的,其访问权限决定于变量的赋值位置。python中有两种最基本的变量作用域:局部作用域和全局作用域。局部变量是在函数内部定义的变量,只能在其被声明的函数内部访问。而全局变量则是在函数外定义的变量,可以在整个程序的范围内被访问。局部变量只有在其被声明的函数内部才能被访问,全局变量则可以在程序的任何

一篇文章掌握Python中多种表达式的使用:算术表达式、字符串表达式、列表推导式、字典推导式、_集合推导式、_生成器表达式、逻辑表达式、函数调用表达式

Python 中的表达式可以包含各种元素,如变量、常量、运算符、函数调用等。以下是 Python 表达式的一些分类及其详细例子: 1. 算术表达式 算术表达式涉及基本的数学运算,如加、减、乘、除等。 # 加法表达式 sum = 3 + 5 # 结果为 8 # 乘法表达式 product = 4 *

《流畅的Python》 读书笔记 第二章数据结构(1) 231007

第2章 数据结构 ABC语言是Python的爸爸~ 很多点子在现在看来都很有 Python 风格:序列的泛型操作、内置的元组和映射类型、用缩进来架构的源码、无需变量声明的强类型 不管是哪种数据结构,字符串、列表、字节序列、数组、XML 元素,抑或是数据库查询结果,它们都共用一套丰富的操作:迭代、切片

【numpy基础】--通用计算

`numpy`提供了简单灵活的接口,用于优化数据数组的计算。 通用计算最大的优势在于通过向量化操作,将循环推送至`numpy`之下的编译层,从而取得更快的执行效率。 `numpy`的通用计算让我们计算数组时就像计算单独一个变量一样, 不用写循环去遍历数组中的各个元素。 比如,对于一般的`python

Linux 升级安装 Python 3

百度飞桨 PaddlePaddle 2.4.0 => Python 3.7.4 PaddlePaddle 2.4.1+ => Python 3.9.0 ### 下载 ```bash # 安装依赖 [root@localhost ~]# yum -y install zlib-devel bzip2-

深入理解 Python 虚拟机:协程初探——不过是生成器而已

在 Python 3.4 Python 引入了一个非常有用的特性——协程,在本篇文章当中我们将详细介绍一下 Python 协程的原理以及虚拟机具体的实现协程的方式。

opensips开启python支持

操作系统 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作为脚本语言,使用起来很方便,查了下opensips的文档,支持使用python脚本写逻辑代码。今天整理下CentOS7环境下opensips2.4.9的python模块笔记及使用

深入理解Python多进程:从基础到实战

title: 深入理解Python多进程:从基础到实战 date: 2024/4/29 20:49:41 updated: 2024/4/29 20:49:41 categories: 后端开发 tags: 并发编程 多进程管理 错误处理 资源调度 性能优化 异步编程 Python并发库 引言 在P

深入理解Python协程:从基础到实战

title: 深入理解Python协程:从基础到实战 date: 2024/4/27 16:48:43 updated: 2024/4/27 16:48:43 categories: 后端开发 tags: 协程 异步IO 并发编程 Python aiohttp asyncio 网络爬虫 第1章:协程

Python多线程编程深度探索:从入门到实战

title: Python多线程编程深度探索:从入门到实战 date: 2024/4/28 18:57:17 updated: 2024/4/28 18:57:17 categories: 后端开发 tags: 多线程 并发编程 线程安全 Python 异步IO 性能优化 实战项目 第1章:Pyth