命名空间和函数的嵌套
Posted f18866
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命名空间和函数的嵌套相关的知识,希望对你有一定的参考价值。
2. 名称空间:
局部命名空间
全局命名空间
内置命名空间
加载顺序:
内置 > 全局 > 局部
取值顺序:
局部 > 全局 > 内置
作用域:
全局作用域:
内置 + 全局
局部作用域:
函数局部
# print(globals()) # 查看全局作用域中的变量和函数名
# print(locals()) # 查看局部作用域中的变量和函数名
3. 函数的嵌套:
def f():
print(11)
def f1():
print(22)
def f2():
print(33) **********重要
f2()
f1()
f()
4. 函数的注释:
def func():
# ‘‘‘
# 这是打印的函数
# :param a: 没啥用1
# :param b: 没啥用1
# :param c: 没啥用1
# :param d: 没啥用1
# :return: 返回的None
# ‘‘‘
# print(a,b,c,d)
5. global|
# print(id(lst))
# def func():
# # a = 15 # 在函数的局部中
# # global se #
# lst[0] = 11
# # print(a) # 使用的是局部
# func()
# print(lst)
# print(id(lst))
# 可变数据类型在函数中可以直接操作,不可变数据类型才需要使用global
# a = 10
# def f():
# a = 1 # a = 2
# def f1():
# # a = 4 # a = 2
# def f2():
# # nonlocal a
# # a = 2
# print(a) # 2
# f2()
# print(a) # 2
# f1()
# print(a) # 2
# f()
# nonlocal 改变最近的父级变量, 如果上级没有能够改变的就继续向上走,直到最外层函数就停止了.
##### 函数: 将一个需求封装后调用,优点:除去重复代码.
以上是关于命名空间和函数的嵌套的主要内容,如果未能解决你的问题,请参考以下文章