码迷,mamicode.com
首页 > 编程语言 > 详细

python 3 基础之局部变量与全局变量

时间:2020-07-05 15:27:52      阅读:53      评论:0      收藏:0      [点我收藏+]

标签:over   ===   就是   需要   bsp   结果   oba   list()   相同   

1、局部变量

  局部变量,就是在函数内部定义的变量;其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的;

  因为其作用范围只是在自己的函数内部,所以不同的函数可以定义相同名字的局部变量

  当函数调用时,局部变量被创建,当函数调用完成后这个变量就不能够使用了

# 定义一个函数
def my_func(a,b):
    num = a + b
    print(num)

my_func(23,23)
# 定义一个局部变量相同的第二个函数
def my_func2(a,b):
    num = a * b
    print(num)

my_func2(33,2)

  两个函数各自内部的变量num都可以在函数各自内部正常使用 :在函数内部定义的局部变量名可以和其他函数中的局部变量名相同 是不冲突的

2、全局变量

  全局变量和局部变量的区别在于作用域,全局变量在整个py文件中声明,全局范围内可以使用;局部变量是在某个函数内部声明的,只能在函数内部使用,如果超出使用范围(函数外部),则会报错

  当函数内出现局部变量和全局变量相同名字时,函数内部中的 变量名 = 数据 此时理解为定义了一个局部变量,而不是修改全局变量的值

# 全局变量
num = 1
# 函数
def num_func():
    # 局部变量
    num = 10
    print(函数内部,num)

num_func()

print(函数外面,num)

======================================
运行结果:

  函数内部 10
  函数外面 1

    函数内部如果使用一个变量 他先从函数内部找 如果有直接使用;函数内部没有找到 会到函数外面找(全局变量) 

    若一个全局变量在函数中使用,修改全局变量,需要声明,如下:

# 定义一个变量
num = 1
def my_func1():
    # 标识这函数内部不是定义一个局部变量 其实是对全局变量的进行修改
    global num
    # 对全局变量的值进行修改
    num = 20
    print("my_func1", num)
my_func1()
# 打印也是20
print("外面", num)
==============================================================
运行结果:

    my_func1 20
    外面 20

  如果在函数中出现  global +全局变量的名字 ,那么这个函数中即使出现和全局变量名相同的变量名 = 数据 也理解为对全局变量进行修改,而不是定义局部变量;执行过后,全局变量值也会改变。

  

  如果全局变量是列表类型,可以通过list的列表方法去对列表进行修改,并且可以不用global来声明,如下:

list_1 = [1,2,56,"list"]
def changeList():
    list_1.append("over")
    print(list_1)

changeList()
print(list_1)

 

python 3 基础之局部变量与全局变量

标签:over   ===   就是   需要   bsp   结果   oba   list()   相同   

原文地址:https://www.cnblogs.com/will-wu/p/13245997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!