python局部变量和全局变量有什么区别-创新互联

python局部变量和全局变量有什么区别?针对这个问题,今天小编总结这篇有关python变量的文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。

创新互联公司的客户来自各行各业,为了共同目标,我们在工作上密切配合,从创业型小企业到企事业单位,感谢他们对我们的要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。专业领域包括网站制作、网站设计、电商网站开发、微信营销、系统平台开发。

一.局部变量

一般而言在函数内部或者类中声明的变量默认都是局部变量。一旦函数结束,变量的生命周期也会结束,占用的空间会被自动释放。

deffunc1():

    # 在函数内部定义的变量默认都是局部变量

    a=1

    print(a)

    # 函数结束,局部变量a的生命周期结束

# 由于a是局部变量,并且a的生命周期已经结束,外部再次调用局部变量a,程序会产生异常,崩溃

print(a)

1

2

3

4

5

6

7

8

程序报错:NameError: name ‘a’ is not defined ,原因:函数内部定义的局部变量只能在函数内部使用。

二.全局变量

全局变量和局部变量相反,在函数外部或者类外部声明的变量默认为全局变量。全局变量的生命周期直到程序结束才会结束,比局部变量生命周期更长。

a=2

deffunc1():

    print(a)

    # 函数结束,局部变量的生命周期结束

    # 全局变量直到程序结束,生命周期才结束

func1()

# 输出全局变量a

print(a)

1

2

3

4

5

6

7

8

9

输出结果:

2

2

1

2

三.局部变量和全局变量的区别

1.全局变量的生命周期是直到程序结束,而局部变量生命周期是函数结束;

2.如果需要在函数内部修改全局变量的值,需要在函数内部为该全局变量前面加上 global 关键字, 否则该变量默认为函数内部定义的局部变量,示例代码如下:

# !usr/bin/env python

# -*- coding:utf-8 _*-

"""

@Author:何以解忧

@Blog(个人博客地址): shuopython.com

@WeChat Official Account(微信公众号):猿说python

@Github:www.github.com

@File:python_global.py

@Time:2019/10/10 21:00

@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

"""

# 在函数内部定义的变量默认都是局部变量

a=2

deffunc1():

    # global a # 声明 a 是全局变量,在该函数内部对a的操作就是对全局变量a的操作

    a=1      # 如果没有上一行代码,默认a就是函数内部的局部变量,函数结束,生命周期结束

    print(a)

    # 函数结束,局部变量的生命周期结束

func1()

# 输出全局变量a

print(a)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

输出结果:

1

2

1

2

是不上觉得很奇怪:为什么最后一个值是2,应该是1才对?

因为没有第17行代码的话,默认a只是函数内部的一个普通局部变量,所以函数内部的print函数输出到控制台是1;函数结束,函数内部的局部变量a值生命周期结束,执行fun1函数之后的print函数输出的是全局变量a的值2.

也就是说函数内部对a值得修改并没有成功,只有在函数内部,为全局变量加上关键字global声明为全局变量,才能修改成功,取消第17行得注释,控制台输出:

1

1

1

2

四.重点总结

1.注意局部变量和全局变量的生命周期;

2.如果想在函数内部修改全局变量的值,需要加上关键字global;

看完上述内容,你们对python局部变量和全局变量的区别大概了解了吗?如果想了解更多相关文章内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


标题名称:python局部变量和全局变量有什么区别-创新互联
本文路径:http://myzitong.com/article/gdooi.html