第二模块 3.6 函数的返回值与作用域

Posted kissfire008

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二模块 3.6 函数的返回值与作用域相关的知识,希望对你有一定的参考价值。

1 函数的返回值与作用域

def cal(x,y):
    res = x**y
    return res   #返回值, 意味着函数的中止

n = cal(5,8)
print(n)
def test():

    return  1,2,3,4,5

print(test())

输出结果是:

(1, 2, 3, 4, 5)   #  return 多个值,输出的结果就是元组的数据类型

 

2  全局变量 与 局部变量

name = "Alex"

def change():
    name = "金角大王"   #局部变量
    print(name)
change()
print(name)
def change():
    name = "金角大王"   #局部变量
    age = 22
    print(name)
    print(locals())   #打印所有的局部变量
    print(globals())   # 打印全局变量
change()
print(name)
  • 在函数中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。

  • 全局变量作用域(即有效范围)是整个程序,局部变量作用域是定义该变量的函数。

  • 变量的查找顺序是局部变量>全局变量

  • 当全局变量与局部变量同名时,在定义局部变量的函数内,局部变量起作用;在其它地方全局变量起作用。

  • 在函数里是不能直接修改全局变量的

def change():
    #name = "金角大王"   #局部变量
    global name # 在函数内部声明(创建)一个全局变量
    name = "hahah"
    age = 22
    print(name)
    print(locals())   #打印所有的局部变量
    print(globals())   # 打印全局变量
change()
print(name)

3  传递列表,字典,集合产生的现象

d = {"name":"alex","age":22,"hobbie": "大保健"}
l = ["alex","jack","lily"]
def change_data(info, name):
    info["hobbie"] = "学习"
    name.append("john")
change_data(d,l)
print(d,l)

 

以上是关于第二模块 3.6 函数的返回值与作用域的主要内容,如果未能解决你的问题,请参考以下文章

函数的返回值与作用域

Python第二周之函数及其作用域

JavaScript函数函数进阶作用域及预解析

C基础作用域和内存管理

笔记:原始值与引用值执行上下文与作用域垃圾回收

Python3 包模块函数与变量作用域