詳解 Go 中的 rune 型別
阿新 • • 發佈:2022-03-15
總結
名稱空間
# 名稱空間 名稱空間是存放變數名與變數值繫結關係 # 名稱空間分類 1.內建名稱空間,python自帶的,啟動時就有的 print() input() 2.全域性名稱空間,呼叫的時候才會產生全域性名稱空間 3.區域性名稱空間,函式體內定義的變數 var1 = 1 # var1 是全域性名稱 def func(): var2 = 2 # var2 是區域性名稱 # 存活週期 1.內建名稱空間 python直譯器執行時產生,關閉時銷燬 2.全域性名稱空間 py檔案執行時產生,關閉時結束 3.區域性名稱空間 函式體程式碼執行時產生,關閉時銷燬
名字查詢順序
# 在查詢名字是要知道自己在哪個空間
1.若在區域性名稱空間
區域性空間->全域性名稱空間->內建名稱空間
2.若在全域性名稱空間
全域性名稱空間->內建名稱空間
def index():
len = '區域性名稱空間中的len'
print(len)
index()
print(len) # 先列印區域性名稱空間中的len 再列印全域性名稱空間中的len
# 如果函式沒有被呼叫 那麼不要去管函式體程式碼有多複雜 先跳過
# 區域性名稱空間之間如果不是巢狀關係 那麼它們互不干涉
:
作用域
# 作用域 作用域就是名稱空間能作用的範圍 ''' 內建名稱空間:任意階段均可使用(全域性有效) 全域性名稱空間:任意階段均可使用(全域性有效) 區域性名稱空間:一般只在區域性名稱空間有效(區域性有效) # 並不絕對,可以打破 ''' # gloabl關鍵字:區域性修改全域性不可變型別 var = 1 def index(): global var # 通過區域性名稱空間修改全域性的var var = 2 index() print(var) # 2 # nolocal關鍵字:區域性名稱空間巢狀寫,內層可以通過nolocal修改外層 def func(): num = 10 def func1(): nonlocal num # nonlocal關鍵字宣告 num = 100 print(num) func1() print(num) func() ''' 修改全域性的不可變型別,需要提前加關鍵字申明,修改的可變型別,不需要加關鍵字申明 '''
函式名多種用法
1.函式名用作變數名賦值 def func(): print('from function func') res = func print(res) res() # from function func 2.函式名當做函式的實參 def func(): print('from function func') def func1(a): print('from func1') print(a) a() func1(func) # <function func at 0x00000281B5B91EA0> 3.函式名用作函式的返回值 def func(): print('from function func') return func1() def func1(): print('from func1') func() # from function func \n from func1 4.函式名用作容器型別的元素 # 容器型別:內部可以存檔多個元素的資料型別 def func(): print('from function func') l1 = [1, 2, 3, 4, func()] print(l1) l1[-1] # from function func \n [1, 2, 3, 4, None]
函式的巢狀
# 函式的巢狀呼叫
def func():
func1()
print('12345')
def func1():
print('98765')
func() # 98765 \n 12345
# 函式的定義
def func(cmd):
def login():
print('登入')
def register():
print('註冊')
if cmd == '1':
login()
elif cmd == '2':
register()
else:
print('對不起做不到')
cmd = input('請輸入功能編號>>>:')
func(cmd)
今天學了好多理論,要理解的有點多
: