九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
python基礎(chǔ)-函數(shù)作用域

函數(shù)

函數(shù)對(duì)象

  • 函數(shù)是第一類(lèi)對(duì)象

  • 函數(shù)名可以被引用

  • 函數(shù)名可以當(dāng)作參數(shù)使用

  • 函數(shù)名可以當(dāng)作返回值使用

  • 函數(shù)名可以當(dāng)作容器類(lèi)型的元素

函數(shù)嵌套

  • 嵌套調(diào)用:在函數(shù)內(nèi)部中調(diào)用函數(shù)

  • 嵌套定義:在函數(shù)內(nèi)部中定義函數(shù)

名稱空間

存放變量名稱的空間,分為內(nèi)置名稱空間、全局名稱空間、局部名稱空間

  • 內(nèi)置名稱空間:python中,提前定義的名字,存在內(nèi)置名稱空間中。例如:關(guān)鍵字、內(nèi)置方法

  • 全局名稱空間:存放于文件級(jí)別的名字,就是全局名稱空間

    if / while / for 內(nèi)部定義的名字,在執(zhí)行之后都存放于全局名稱空間python教程

    # if 的示例:var = 4if var > 5:    var = "var 大于5"else:    var = "var 小于等于5"print(var)		# 打印結(jié)果:var 小于等于5# while 的示例:num = 0while num <= 3:    num += 1print(num)		# 打印結(jié)果:4# for 的示例for i in range(2):    passprint(i)		# 打印結(jié)果:1
  • 局部名稱空間函數(shù)內(nèi)部定義的所有名字都是存放于當(dāng)前函數(shù)的內(nèi)置名稱空間

如果想訪問(wèn)一個(gè)變量值,必須先訪問(wèn)對(duì)應(yīng)的名稱空間,獲取到該變量的名稱以及名稱和值內(nèi)存地址之間的關(guān)系。

生命周期

  • 內(nèi)置名稱空間python 解釋器啟動(dòng)時(shí)生效,關(guān)閉時(shí)失效

  • 全局名稱空間當(dāng)前python文件執(zhí)行生效,執(zhí)行結(jié)束后失效

  • 局部名稱空間函數(shù)調(diào)用時(shí)生效,函數(shù)體代碼結(jié)束時(shí)失效

查找順序

  • 局部名稱:局部  全局  內(nèi)置函數(shù)

  • 全局名稱:全局  內(nèi)置

    內(nèi)置再找不到就會(huì)報(bào)錯(cuò)

  • 函數(shù)內(nèi)部使用的名字,在定義階段已經(jīng)規(guī)定死了,與調(diào)用位置無(wú)關(guān)

作用域

  • 全局作用域全局可以調(diào)用的名字存在于全局作用域。內(nèi)置名稱空間和全局名稱空間屬于此處

  • 局部作用域局部可以調(diào)用的名字存在于局部作用域。局部名稱空間屬于此處

  • global:將局部名稱空間的變量聲明成全局變量

    注意:global需要在函數(shù)內(nèi)部聲明,若在函數(shù)外聲明,則函數(shù)依然無(wú)法操作

    # 這種情況不能修改x1的值x1 = 1def func1():    x1 = 2func1()print(x1)  # 打印結(jié)果:1# 使用global 后,可以修改x2的值x2 = 1def func2():    global x2 # 先聲明成全局變量    x2 = 2func2()print(x2)	# 打印結(jié)果:2# global 若在函數(shù)外聲明,無(wú)法操作變量global x3x3 = 1def func2():    x3 = 2func3()print(x3)	# 打印結(jié)果:1
  • nonlocal:在局部名稱空間聲明局部變量。

    nonlocal 聲明后的變量會(huì)從當(dāng)前函數(shù)的外層函數(shù)開(kāi)始一層層去查找該變量。若是一直到最外層函數(shù)都找不到,則會(huì)拋出異常。

    def f3():    x = 4    def f1():        y = 2        def f2():            nonlocal x            x = 3        f2()  # 調(diào)用f2(),修改f1作用域中名字x的值        print(x)  # 在f1作用域查看x。打印結(jié)果:3    f1()    print(x)  # 打印結(jié)果:3f3()
    def f3():    x = 4    def f1():        x = 2        def f2():            nonlocal x            x = 3        f2()  # 調(diào)用f2(),修改f1作用域中名字x的值        print(x)  # 在f1作用域查看x。打印結(jié)果:3    f1()    print(x)  # 打印結(jié)果:4f3()
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
【2020Python修煉記 】Python語(yǔ)法入門(mén)--名稱空間
python的名稱空間和作用域
說(shuō)說(shuō)Python中變量的作用域?
命名空間和作用域--python
python基礎(chǔ)7(函數(shù) Ⅱ)
Python名稱空間詳解
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服