x = 'aaa'deff1():
x = 'bbb'deff2():
x = 'ccc'deff3():
x = 'ddd'print(x) # 检测语法时,发现f3的局部名称空间将会有x,所有查找的时候,就在f3的局部名称空间里找
f3()
f2()
f1() # ddd """局部名称空间之间如果不是嵌套关系,则他们之间互不干涉"""defindex1():
name = 'owen'defindex2():
age = 20print(name) # 在函数名index局部名称空间中没有name,所有会发生报错
index1()
index2()
defindex ():
print('form function index')
print(index)
res = index # 让res 也指向函数体代码print(res)
res()
# <function index at 0x000002209A7BD430># <function index at 0x000002209A7BD430># form function index
2 、函数名还可以当成函数的实参
defindex():
print('from index')
deffunc(a):
print('from func')
print(a)
a()
func(index)
# from func# <function index at 0x000001E7099BD430># from index
3 、函数名还可以当成函数的返回值
deffunc():
print('from func')
return index # 将函数名当作返回值defindex():
print('from index')
res = func() # res接受函数名print(res) # 指向index函数的内存地址
res()
# from func# <function index at 0x000001C75E318940># from index
4 、函数名可以作为容器类型的元素
容器类型:内部可以存档多个元素的数据类型:列表、元组、字典
defindex():
print('from index')
l1 = [11, 22, 33, 44, index]
print(l1)
l1[-1]()
# [11, 22, 33, 44, <function index at 0x000001A62FE7D430>]# from index
六 、函数的嵌套
# 函数的嵌套调用defmy_max(a, b): # 返回最大值if a > b:
return a
return b
print(my_max(100,999)) # 999defmany_max(a, b, c, d):
res = my_max(a, b)
res1 = my_max(res, c)
res2 = my_max(res1, d)
#这个就是两个对比,依次对比
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人