1. 函数的返回值
•返回值就是函数执行返回的结果
•通过return语句来指定函数的返回值
•return后面可以跟任意对象,甚至可以是一个函数
def fun(n):
return n#返回值是n
print(fun(3))#输出结果:3
•可以直接使用函数的返回值,另一种方式通过一个变量来接收函数的返回值
def fun(n):
return n
r = fun(3)#使用变量r来接收函数返回值
print(r)#输出结果:3
•在函数中,return语句后的代码都不会执行,return语句一旦执行,函数将自动结束
•函数体中没有 return 语句时,函数运行结束会隐含返回一个 None 作为返回值,类型是 NoneType,与 return 、return None 等效,都是返回 None。
def fun():
print('我爱你')
return#语句执行,函数自动结束
print('我也爱你')
r=fun()#r接受函数返回值,并执行函数
print(r)
#输出结果:
我爱你
None
2. 文档字符串
•help()是Python中内置函数,通过help()函数可以查询Python中函数的用法
•语法表现:help(函数对象)
help(print)#查询print函数的用法
输出结果:
•在定义函数时,可以在函数内部编写文档字符串,文档字符串就是对函数的说明
3. 函数的作用域
•作用域(scope) 指的就是变量生效的区域
全局作用域(全局变量)
•全局作用域在程序执行时创建,在程序执行结束时销毁
•所有函数以外的区域都是全局作用域
•在全局作用域中定义的变量,都是全局变量,全局变量可以在程序的任意位置进行访问
a = 10#定义a为全局变量
def fun():
print(a)#输出全局变量a
fun()#输出结果:10
局部作用域(局部变量)
•局部作用域在函数调用时创建,在调用结束时销毁
•函数每调用一次就会产生一个新的局部作用域
•在函数作用域中定义的变量,都是局部变量,它只能在函数内部被访问
•注意:当一个变量即被定义为全局变量,又被定义为局部变量时,优先使用函数内部的局部变量,没有局部变量时即可使用全局变量。(就近原则)
a = 10#全局变量
def fun():
a = 20#函数内部的局部量,
print('a=',a)
fun()#输出结果:a= 20
•在函数内部修改全局变量,需要使用global关键字,来声明局部变量
a = 111#全局变量a
def fun():
global a#定义a为全局变量
a = 222#修改全局变量a的值
print('局部变量a=', a)#输出局部变量
fun()
print('全局变量a=', a)#输出全局变量
#输出结果:
局部变量a= 222
全局变量a= 222
4. 命名空间
•命名空间实际上就是一个字典,是一个专门用来存储变量的字典。
•locals()用来获取当前作用域的命名空间
•如果在全局作用域中调用locals()则获取全局命名空间,如果在局部作用域中调用locals()则获取函数命名空间
•命名空间的返回值是一个字典
def fun(like):
name = 'cx'
print(locals())
fun('python')
#输出结果:{'like': 'python', 'name': 'cx'}
•返回值为字典,即可使用字典的方法:添加,删除等等
def fun(like):
name = 'cx'
r=locals()#将返回值赋值给r
r['a']=666#添加键值对
print(r)#输出r
fun('python')
#输出结果:{'like': 'python', 'name': 'cx', 'a': 666}