函数的 命名空间 作用域
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]())
以上是关于函数的 命名空间 作用域的主要内容,如果未能解决你的问题,请参考以下文章