局部变量、全局变量和修改全局变量

news/2024/7/23 22:08:16 标签: 开发工具, 游戏

局部变量

<1>什么是局部变量

如下图所示:

<2>小总结

  • 局部变量,就是在函数内部定义的变量
  • 不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响
  • 局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用

全局变量

<1>什么是全局变量

如果一个变量,既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是全局变量

demo如下:

    # 定义全局变量
    a = 100

    def test1():
        print(a)

    def test2():
        print(a)

    # 调用函数
    test1()
    test2()

运行结果:

<2>全局变量和局部变量名字相同问题

看如下代码:

<3>修改全局变量

既然全局变量,就是能够在所以的函数中进行使用,那么可否进行修改呢?

代码如下:

<4>总结1:

  • 在函数外边定义的变量叫做全局变量
  • 全局变量能够在所有的函数中进行访问
  • 如果在函数中修改全局变量,那么就需要使用global进行声明,否则出错
  • 如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的,小技巧强龙不压地头蛇

<5>可变类型的全局变量

>>> a = 1
>>> def f():
...     a += 1
...     print a
...
>>> f()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in f UnboundLocalError: local variable 'a' referenced before assignment >>> >>> >>> li = [1,] >>> def f2(): ... li.append(1) ... print li ... >>> f2() [1, 1] >>> li [1, 1]

 

<5>总结2:

  • 在函数中不使用global声明全局变量时不能修改全局变量的本质是不能修改全局变量的指向,即不能将全局变量指向新的数据。
  • 对于不可变类型的全局变量来说,因其指向的数据不能修改,所以不使用global时无法修改全局变量。

对于可变类型的全局变量来说,因其指向的数据可以修改,所以不使用global时也可修改全局变量。

转载于:https://www.cnblogs.com/alexzhang92/p/9416808.html


http://www.niftyadmin.cn/n/1087346.html

相关文章

大二暑假周进度报告(四)

&#xff08;1&#xff09;本周进度 ①在网上找资料学习MVC体系架构&#xff0c;想至少学会一种体系架构。 ②通过了第二份家教的试讲&#xff0c;已经开始两份兼职。 ③结合所学的一点知识&#xff0c;对河北省创新平台年报统计系统的功能进行重写。 &#xff08;2&#xff09…

[费用流]luogu P3980 志愿者招募

https://www.luogu.org/problemnew/show/P3980 分析 这题可谓是借差补全的典例了 一拿到题&#xff0c;想法肯定是源点向志愿者连费用的边&#xff0c;志愿者向时间段连边&#xff0c;时间段向t连需求的边 但是我们发现&#xff0c;这样的话需要把一个流量当多个流量用&#xf…

微服务的概念

--------------------- 作者&#xff1a;Soinice 来源&#xff1a;CSDN 原文&#xff1a;https://blog.csdn.net/Soinice/article/details/83989225 版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请附上博文链接&#xff01; 目录 前言 一、微服务介绍 1.什…

简介一下 i++和++ii=i+i,i+=1;的区别

首先&#xff1a; int i2; i2; i3; 前者先显示当前的值&#xff0c;而后者则是先自增在显示值&#xff1b; second ii1和i1; 输出结果虽然一样&#xff0c;但是 1.byte i2;i2;2.byte i2;ii2;第一种编译可以通过&#xff0c;第二种却不能通过&#xff0c;因为当使用第一种复合赋…

母函数(Generating function)详解

母函数&#xff08;Generating function&#xff09;详解 前段时间写了一篇《背包之01背包、完全背包、多重背包详解》&#xff0c;看到支持的人很多&#xff0c;我不是大牛&#xff0c;只是一个和大家一样学习的人&#xff0c;写这些文章的目的只是为了一是希望让大家学的轻松…

2. C/C++笔试面试经典题目二

1. C和C中struct有什么区别&#xff1f; 【参考答案】 【解析】C中的struct没有保护行为&#xff0c;没有public&#xff0c;private&#xff0c;protected&#xff0c;内部不能有函数&#xff0c;但可以有函数指针。 2. C中的struct和class有什么区别&#xff1f; 【参考答案】…

前端开发工具

链接: https://pan.baidu.com/s/14HUVu3E6fjAgZvppTwq1PQ 提取码: ctu7 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦

WPF自定义控件第一 - 进度条控件

WPF自定义控件第一 - 进度条控件 原文:WPF自定义控件第一 - 进度条控件本文主要针对WPF新手&#xff0c;高手可以直接忽略&#xff0c;更希望高手们能给出一些更好的实现思路。 前期一个小任务需要实现一个类似含步骤进度条的控件。虽然对于XAML的了解还不是足够深入&#xff0…