函數基礎

函數基礎

函數對象

函數對象四大功能

  1. 引用函數

    f = func
    print(f)
  2. 看成參數傳給一個函數code

    len(x)
    def foo(m):
        m()
    foo(func)
  3. 能夠看成返回值對象

    def foo(x):
        return x
    
    res = foo(func)
    print(res)
  4. 能夠看成容器類型的元素作用域

    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:修改局部做用域中的變量,

相關文章
相關標籤/搜索