命名空間和函數的嵌套
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 改變最近的父級變量, 如果上級沒有能夠改變的就繼續向上走,直到最外層函數就停止了.
##### 函數: 將一個需求封裝後調用,優點:除去重復代碼.
命名空間和函數的嵌套