命名空间和函数的嵌套

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 改变最近的父级变量, 如果上级没有能够改变的就继续向上走,直到最外层函数就停止了.


##### 函数: 将一个需求封装后调用,优点:除去重复代码.

猜你喜欢

转载自www.cnblogs.com/F18866/p/9958004.html
今日推荐