Python3-之函数(三)

62 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第19天,点击查看活动详情

src=http___i.cqdj.cc_forum_201307_27_160601dupc4j8gucap6mld.gif&refer=http___i.cqdj.gif

   您好,我是游手好闲的小羊!

函数------变量的作用域

局部变量和全局变量区别

说明:局部变量是在函数内部定义的变量,只能在函数内部使用;
全局变量是在函数外部定义的变量(没有定义在某⼀个函数内),所有函数 内部都可以使用这个变量。

提示:在其他的开发语⾔中,大多不推荐使⽤全局变量—— 可变范围太⼤,导致 程序不好维护!

局部变量

局部变量是在函数内部定义的变量,只能在函数内部使⽤;
函数执⾏结束后,函数内部的局部变量,会被系统回收;
不同的函数,可以定义相同的名字的局部变量,彼此之间不会产⽣影响;

局部变量的作⽤

在函数内部使⽤,临时保存函数内部需要使用的数据

def my_func1():
    a = 10
def my_func2():
    a = 20
    my_func1() # 调用my_func2 函数,不会影响a 的值
    print("a = %d" % a)
    
my_func2()

局部变量的生命周期

  • 所谓⽣命周期就是变量从被创建到被系统回收的过程;
  • 局部变量在函数执⾏时才会被创建;
  • 函数执⾏结束后局部变量被系统回收;
  • 局部变量在⽣命周期内,可以⽤来存储函数内部临时使⽤到的数据。

全局变量

全局变量是在函数外部定义的变量,所有函数内部都可以使用这个变量。
为了保证所有的函数都能够正确使⽤到全局变量,应该将全局变量定义放在 其他函数上方。

# 定义一个全局变量num
num = 100
def my_func1():
    print(num)
def my_func2():
    print(num)
    
my_func1()
my_func2()

全局变量与局部变量重名

# 定义一个全局变量num
num = 100
def my_func1():
    # 函数内部定义一个变量和全局变量重名
    num = 1
    
# 全局变量num 的值并没有改变
my_func1()
print(num)

注意:只是在函数内部定义了⼀个局部变量⽽已,只是变量名相同—— 在函数内 部不能直接修改全局变量的值。

global 关键字

如果在函数中需要修改全局变量,需要使⽤global 进⾏声明

# 定义一个全局变量num
num = 100
def my_func1():
# 函数内部使用global 关键字声明全局变量num
    global num
    num = 1
    
# 全局变量num 的值被my_func1 函数改变
    my_func1()
    print(num)

我是爱分享的小羊,每天分享一点点!