目錄函式的巢狀
命名空間和作用域
作用域global關鍵字
nonlocal關鍵字
注意點python中一切皆物件
def f1():
print('from f1')
func = f1
print('f1:', f1)
print('func', func)
# 列印結果:
f1: func
def f1():
print('from f1')
def f2(f2_f1):
print('f2_f1:', f2_f1)
f2(f1)
print('f1:', f1)
# 列印結果:
f2_f1: f1:
def f1():
print('from f1')
def f2(f2_f1):
return f2_f1
res = f2(f1)
print('res:', res)
print('f1:', f1)
# 列印結果:
res: f1:
def f1():
print('from f1')
lt = [f1, 12, 3, 4, 5]
lt[0]()
函式裡面巢狀函式def pay():
print('支付1e成功')
def withdraw():
print('提現2e成功')
dic =
while true:
msg = '''
'1': 支付,
'2': 提現,
'3': 退出,
'''print(msg)
choice = input('>>: ').strip()
if choice == '3':
break
elif choice in dic:
dic[choice]()
儲存了內建方法的空間def f1():
print('from f1')
def f2():
print('from f2')
f2()
f1()
資料型別內建方法;python直譯器自帶的方法(print / len / list / str / dict)
除了內建和區域性都叫全域性
函式內部定義的都叫區域性
內建命名空間:python直譯器啟動的時候就有了
全域性命名空間:執行檔案**的時候才會有全域性
區域性命名空間:函式呼叫的時候才會有區域性
從當前位置查詢,找不到按照這種順序,不會逆向尋找:區域性 > 全域性 > 內建 > 報錯
內建命名空間 +全域性命名空間 --> 全域性作用域
區域性命名空間 --> 區域性作用域
x = 10
def func():
global x
x = 20
func()
print(x) # 列印20
所有可變資料型別均可打破上述一切規則x = 10
def f1():
x = 2
def f2():
nonlocal x # nonlocal讓x成為額頂層函式的區域性,不是讓它成為全域性
x = 30
f2()
print(x)
f1()
# 列印30
lt = [10]
def f1():
f1()
print(lt)
# 列印結果:
[10,20]
函式命名空間和作用域
內建 命名空間 python直譯器啟動之後就可以使用的變數 函式名 全域性 命名空間 在函式外面的變數名 函式名 區域性 命名空間 每乙個函式都擁有自己的命名空間 python直譯器執行 載入順序 所有 內建空間函式名 變數 逐行 載入全域性空間變數 函式名 區域性空間的變數 函式名 在呼叫函式的時...
函式命名空間和作用域
內建 命名空間 python直譯器啟動之後就可以使用的變數 函式名 全域性 命名空間 在函式外面的變數名 函式名 區域性 命名空間 每乙個函式都擁有自己的命名空間 python直譯器執行 載入順序 所有 內建空間函式名 變數 逐行 載入全域性空間變數 函式名 區域性空間的變數 函式名 在呼叫函式的時...
函式 命名空間和作用域
一.命名空間。二.作用域 三函式的巢狀。今日新名詞 1 globals 函式 檢視全域性作用域的內容 2 locals 函式 檢視區域性作用域的內容 3 global 方法 呼叫全域性作用域的變數並獲得修改許可權 4 nonlocal 方法 呼叫區域性作用域的變數並獲得修改許可權.命名空間 用來存放...