首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python: 全局变量 & 局部变量的使用

Python: 全局变量 & 局部变量的使用

作者头像
JNingWei
发布2018-09-28 16:07:25
1.2K0
发布2018-09-28 16:07:25
举报
文章被收录于专栏:JNing的专栏JNing的专栏

  码Python代码时,想用全局变量,报了错。所以上网查了相关文档,总结出 以下几点

  • 函数内部的变量名如果 第一次 出现,且出现在 = 前面,则在该函数内部被视为定义一个局部变量。
  • 函数内部的变量名如果 第一次 出现,且出现在 = 后面,且该变量在全局域中已定义,则这里将引用全局变量(如果此时该变量在全局域中没有定义,则会报错 UnboundLocalError)。
  • 如果变量在 全局域 中和 局部域 有定义,则默认会使用局部变量。
  • 如果要在函数中给全局变量 赋值,需要用 global 关键字声明。

自己写一段代码来验证它:

  代码段_0:

num = 100


def show(value):
    print 'id = %s' % id(value)


def func_0():
    temp = num
    show(temp)

def func_1():
    global num
    show(num)


show(num)
func_0()
func_1()

  Output:

id = 30312368
id = 30312368
id = 30312368

Process finished with exit code 0

  代码段_1:

num = 100


def show(value):
    print 'id = %s' % id(value)


def func_0():
    temp = num
    show(temp)

def func_1():
    num += 1
    show(num)


show(num)
func_0()
func_1()

  Output:

Traceback (most recent call last):
id = 28153776
  File "/home/user/Desktop/temp.py", line 20, in <module>
id = 28153776
    func_1()
  File "/home/user/Desktop/temp.py", line 14, in func_1
    num += 1
UnboundLocalError: local variable 'num' referenced before assignment

Process finished with exit code 1

成功地印证了上面的四条。



本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年07月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 自己写一段代码来验证它:
  • 成功地印证了上面的四条。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档