Python 函式的巢狀
阿新 • • 發佈:2018-12-07
# 函式的互相呼叫 def func1(): print("我是神器的func1") def func2(): func1() print("我是神器的func2") def func3(): print("我是神器的func3") # func5() def func4(): func3() print("我是神器的func4") def func5(): func2() func3() print("我是神器的func5") def func6(): func5() print("我是神器的func6") func3() func1() func6() def outer(): def inner(): print("我的天哪") print("還可以這樣寫???") inner() outer() # inner() # 在全域性不能找到區域性的內容 def func1(): print("1") def func2(): print("2") def func3(): print("3") print("4") func3() print(5) print("6") func2() print("7") func1() # 全域性變數一般是不能隨意的修改的 a = 10 def func(): # 慎用. global a # global 表示從全域性把一個變數引入到區域性, 後面使用的a都是全域性變數 a += 10 # ?? a = a + 10 # 現在的a是全域性的, 你現在檢視改全域性變數 print("裡面的列印",a) func() print("外面的列印", a) a = 10 def func(): def inner(): # 慎用. global a # global 表示從全域性把一個變數引入到區域性, 後面使用的a都是全域性變數 a += 10 # ?? a = a + 10 # 現在的a是全域性的, 你現在檢視改全域性變數 print("裡面的列印",a) inner() func() print("外面的列印", a) # nonlocal 在區域性, 尋找離他最近的外層的一個變數 a = 50 def func1(): # a = 10 # 區域性 def func2(): nonlocal a # 不找全域性, global找全域性 a += 10 # a = a + 10 python不讓這麼幹 print("func2", a) func2() print(a) func1() print(a) # 如果沒有nonlocal和global 查詢的順序: 自己, 上一層, 上一層, 上一層 def func0(): a = 50 def func1(): a = 10 # 區域性 def func2(): nonlocal a # 不找全域性, global找全域性 a += 10 # a = a + 10 python不讓這麼幹 print("func2", a) func2() print(a) func1() print(a) func0() a = 1 def fun_1(): a = 2 def fun_2(): nonlocal a a = 3 def fun_3(): a = 4 print(a) print(a) fun_3() print(a) print(a) fun_2() print(a) print(a) fun_1() print(a) flag = False def login(): global flag uname = input("使用者名稱:") upwd = input("密碼:") if uname == "alex" and upwd == "123": flag = True else: flag = False def fatie(): if flag == True: print("可以發帖") else: print("滾去登入") login() fatie() fatie() fatie() fatie()