美文网首页
理解Python函数的局部变量与全局变量

理解Python函数的局部变量与全局变量

作者: Shadow_爱旅拍 | 来源:发表于2019-10-25 12:33 被阅读0次

局部变量常见问题

1.不同函数体内部,相同命名的局部变量互不影响
2.函数体外部或全局处调用函数体内部的局部变量会报错,即函数体外部无法调用函数体内部变量

解决方式一:

使用函数返回值解决局部变量问题

def set_name():
        name = "Lily"    
        return name    #返回局部变量的值
def print_name(name):
        print(name)
#函数顺序调用
name = set_name()   #使用变量存储函数返回值,此变量name与set_name()函数内变量name,是不同的内存地址引用
print_name(name)     #将返回值作为参数传入print_name()函数调用

解决方式二:

全局变量为函数外部定义的变量;使用范围:可在不同的函数中使用;函数内部使用global声明实现对全局变量属性的修改;全局变量命令一般以g_name开头

#全局变量,在两个函数中同时调用全局变量,打印全局变量值
name = "Kadi"   #定义全局变量
def get_name():
        print(name)   #函数体内使用全局变量
get_name()      #调用函数
print(name)      #直接打印全局变量
>Kadi
>Kadi    #结果一样
#列表、字典作为全局变量,在函数内修改他们中的元素,不用使用global关键字声明
g_list = [1, 2, 3]
g_dict = {'name': 'lily', 'weight':100}
#在全局变量中添加新的元素
def updata_info():
        g_list.append(4)   #在末尾添加4
        g_dict['heigt'] = 170
#循环遍历全局变量
def get_info():
        for num in g_list:
                print(num)
        for key,value in g_dict.items():
                print(key, value)
#函数调用
updata_info()
get_info()
>1
 2
 3
 4
>name lily
  weight 100
  heigt 170

函数返回值:单个返回值与多返回值函数

#多返回值函数:列表
#对x,y进行加、减、乘、除计算,并将结果同时返回
#方式一:返回一个结果列表
def x_y_cal(x, y):
        result1 = x + y
        result2 = x - y
        result3 = x * y
        result4 = x / y
        results = [ result1, result2, result3, result4]
        return results
#调用函数
rs = x_y_cal(16, 8)   #此处也可以用解包的方式赋值
print(type(rs))   #返回类型为列表
print(rs)

函数返回值:之元组

#多返回值函数:元组
#对x,y进行加、减、乘、除计算,并将结果同时返回
#方式一:返回一个结果元组
def x_y_cal(x, y):
        result1 = x + y
        result2 = x - y
        result3 = x * y
        result4 = x / y
        results = (result1, result2, result3, result4)
        return results
#调用函数
rs = x_y_cal(16, 8)   #此处也可以用元组解包的方式多个变量接收返回值元组或列表的元素
a,b,c,d = x_y_cal(16, 8)
print("加:{},减:{},乘:{},除:{}".format(a,b,c,d))      #.format格式化输出
print(type(rs))   #返回类型为元组
print(rs)
#同理字典也可以
科普

接上文

a,b,c,_ = x_y_cal(16,8)   #此处"_"为占位符,因为函数返回值为4个,但是我们并不想接收第四个值,所以采用占位符_接收
print("加:{},减:{},乘:{}".format(a,b,c))      #.format格式化输出

相关文章

  • C/C++知识点分享(16)

    1、statac全局变量、局部变量、函数与普通全局变量、局部变量、函数,static全局变量与普通的全局变量有什么...

  • python

    函数内全局变量赋值 Python中有局部变量和全局变量,当局部变量名字和全局变量名字重复时,局部变量会覆盖掉全局变...

  • python变量区域的一个坑

    python有两种变量,全局变量和局部变量。 全局变量的scope是整个module,局部变量是函数或者class...

  • Python篇-函数(二)函数结构与存储

    一 : 全局变量与局部变量 全局变量,函数内部直接使用 函数内部的局部变量 global 使用global相当于引...

  • 关于JS中的作用域链

    1. 全局变量与局部变量 全局变量:定义在函数外部的变量可以被叫做全局变量局部变量:定义在函数内部的变量,但是如果...

  • 函数

    变量 python中的变量也分为全局变量和局部变量。 局部变量 位置:在函数内部定义的变量 作用范围:这个函数内部...

  • 3-Python 函数(1)

    课程概要:1、认识函数2、形参与实参3、全局变量与局部变量4、函数的使用与返回值5、文档字符串(Python中特有...

  • 理解Python函数的局部变量与全局变量

    局部变量常见问题 1.不同函数体内部,相同命名的局部变量互不影响2.函数体外部或全局处调用函数体内部的局部变量会报...

  • 全局变量和局部变量

    局部变量可以与全局变量重名,但是局部变量会屏蔽全局变量。要使用全局变量,需要使用::。在函数体内引用变量会用到同名...

  • 2018-11-12

    全局变量和局部变量 JS函数内部可以直接读取全局变量 但函数外部无法读取函数内部的局部变量 从外部读取函数内部的 ...

网友评论

      本文标题:理解Python函数的局部变量与全局变量

      本文链接:https://www.haomeiwen.com/subject/rjdsvctx.html