1. 程式人生 > >命名空間和函數的嵌套

命名空間和函數的嵌套

使用 一個 locals *** 封裝 數據 操作 函數 加載

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 改變最近的父級變量, 如果上級沒有能夠改變的就繼續向上走,直到最外層函數就停止了.


##### 函數: 將一個需求封裝後調用,優點:除去重復代碼.

命名空間和函數的嵌套