函数的 命名空间 作用域

Posted

tags:

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

                   ================================
函数进阶
================================


--------- 全局的命名空间 ---- 函数外部的
1 命名空间
--------- 局部命名空间 ---- 函数内的

内置的命名空间----- python 内置的

调用时
命名空间的 加载顺序 python启动 ===>> 内置的命名空间 ====>> 加载全局命名空间(从上到下) ===>>> 加载局部的命名空间(从上到下)


--------------------------------
对于变量的使用 内部优先用自己的
---------------------------------


技术分享

 



#----------------------------------------------------------------------------------

例子

# a=0
# b=1
#
# def my_min(a,b):
# c= a if a< b else b
#
# def Max(a,b): # Max 是一个变量 --->> 存储函数的地址
# c= a if a>b else b
# return c
#
#
# re=Max(2,3)
#
# print(a)
# print(re)
#----------------------------------------------------------------------------------

------------ 全局的命名空间 ---- 都可以使用
2 作用域 局部命名空间 ---- 函数内的使用
------------ 内置的命名空间----- python 内置的 全部可以使用


# 作用域

#内置的命名空间 在任意地方都可以使用
#全局的命名空间 在自己写的代码里可以随意使用
# 局部的命名空间 只能在函数内使用


# 作用域范围 从大到小 : 内置-->>全局--->>局部

# 小范围的局部,如果局部有的话使用局部--往外找

# a=0
# def demo1():
# def demo2():
# print(a)
# demo2()
# print(a)
# demo1()
# print(a)

技术分享

 





#----------------------------------------------------------------------------------

globals()
locals() # 打印全局,局部的变量


global a ----->>> 会改变全局变量

nonlocal a ---->>> 会改变上一层变量

# a=1
#
# def F1():
# global a
# a=4
# print(a)
# F1()

#----------------------------------------------------------------------------------


--------------------
3 函数名的实质-----函数变量 作为参数
-------------------

# 函数的名字 ----可以当做变量使用

# 首先是一个函数的内存地址
# 可以赋值,可以作为其他容器数据的元素
# 可以作为函数的参数,返回值


def a(): # 这里的 a ----->>> 是一个全局变量 函数
return ‘hello‘
# print(a)

l=[a,1]
print(l[0]())










































































































以上是关于函数的 命名空间 作用域的主要内容,如果未能解决你的问题,请参考以下文章

命名空间

函数_命名空间和作用域

函数的命名空间和作用域

python之函数命名空间和作用域

命名空间和作用域

函数的命名空间和作用域