引用函數
f = func print(f)
看成參數傳給一個函數code
len(x) def foo(m): m() foo(func)
能夠看成返回值對象
def foo(x): return x res = foo(func) print(res)
能夠看成容器類型的元素作用域
def func(): pass func_lis = [func] func_lis = [0]()
函數內部定義的函數,沒法在函數外部使用內部定義的函數。it
def f1(): def f2(): print('sad') f2() f2()
內置名稱空間:class
啓動python時產生的空間,裏面存放print,while,is等容器
在啓動時生效,在關閉時失效基礎
全局名稱空間:變量
建立文件時產生,定義的函數等,全局定義的函數全局可用,如x,func,l,z
在文件執行時生效,結束時失效
局部名稱空間:
定義函數時產生,存在函數內部
文件調用函數期間生效,在函數執行結束後失效
局部名稱空間-->全局名稱空間-->內置名稱空間(找不到報錯)
內置名稱空間-->全局名稱空間-->局部名稱空間
全局做用域:
全局做用域,包含內置名稱空間和全局名稱空間
局部做用域:
零時存儲,只包含局部名稱空間
ps:做用域在函數定義階段就已經固定死了,與函數的調用無關.
global:修改全局做用域中的變量
nonlobal:修改局部做用域中的變量,