标签:func 名称空间 参数 临时 加载 产生 引用 function 作用
引用
def func():
pass
f = func
print(f)
<function func at 0x000002765A812E18>
当做参数传给一个函数
def func():
print('abc')
def foo(x):
x()
foo(func)
abc
当做函数的返回值
def func():
pass
def foo(x):
return x
res = foo(func)
print(res)
<function func at 0x0000028A692A2E18>
当做容器类型元素
def func():
print('abc')
function_list = [func]
function_list[0]()
定义:内存中的储存变量名与变量间绑定关系的空间。
作用:存放python解释器自带的名字。
生命周期:解释器启动时生效,关闭时失效。
作用:除了内置和局部的名字之外,其余都存放在全局名称空间。
生命周期:文件执行时生效,文件执行结束后失效。
作用:存放函数调用期间函数体产生的名字。
生命周期:文件执行时函数调用期间生效,函数执行结束后失效。
内置(程序运行前加载)>>>全局(从上到下加载)>>>局部(调用时加载)
局部>>>全局>>>内置
x = 1
def func():
print(x)
x = 10
func()
10
定义:作用的区域
注意:
作用域关系在函数定义阶段就固定了,与函数调用无关。
在局部想要修改全局的可变类型,不需要任何声明,可以直接修改。
全局有效,全局存活,包含内置名称空间和全局名称空间。
x = 1
def bar():
print(x)
bar()
1
局部有效,临时储存,只包含局部名称空间
def f1():
def f2():
def f3():
print(x)
x = 2
f3()
f2()
f1()
2
# 修改全局作用域中的变量
x = 1
def f1():
x = 2
def f2():
global x # 修改全局
x = 3
f2()
f1()
print(x)
3
# 修改局部作用域中的变量
x = 1
def f1():
x = 2
def f2():
nonlocal x
x = 3
f2()
print(x)
f1()
2
# 求四个数中的最大值
def max2(x,y):
m = x if x>y else y
return m
def max4(a,b,c,d):
res1 = max2(a,b)
res2 = max2(res1,c)
res3 = max2(res2,d)
return res3
标签:func 名称空间 参数 临时 加载 产生 引用 function 作用
原文地址:https://www.cnblogs.com/binyuanxiang/p/11559423.html