成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

python-學(xué)習(xí)筆記 內(nèi)部函數(shù)

Gilbertat / 1994人閱讀

摘要:返回該函數(shù)的時(shí)候,攜帶了該內(nèi)部函數(shù)引用的外部函數(shù)參數(shù)和局部變量。每次返回的函數(shù)都是不同的對(duì)象的結(jié)果為內(nèi)部函數(shù)本身被返回時(shí),所攜帶的參數(shù)或局部變量時(shí)那一刻的值例如在函數(shù)內(nèi)有循環(huán),內(nèi)部函數(shù)引用的循環(huán)變量。

內(nèi)部函數(shù)

Python可以在函數(shù)內(nèi)部再定義一個(gè)函數(shù)。這個(gè)定義的內(nèi)部函數(shù)可以引用外部函數(shù)的參數(shù)和局部變量。
事實(shí)上,內(nèi)部函數(shù)還可以在其中再定義內(nèi)部函數(shù),實(shí)現(xiàn)內(nèi)部函數(shù)多重嵌套。
例如:

def fun_outer(x, y):
    def fun_inner(z):
        def fun_inner_inner(h):
            return x+y+z+h
        return fun_inner_inner(100)
    return fun_inner(20)

print fun_outer(1, 2)
返回函數(shù)本身

函數(shù)本身也是一個(gè)對(duì)象。因此我們可以在函數(shù)內(nèi)將一個(gè)內(nèi)部函數(shù)返回。返回該函數(shù)的時(shí)候,攜帶了該內(nèi)部函數(shù)引用的外部函數(shù)參數(shù)和局部變量。

def fun_outer(x, y):
    def fun_inner(z):
        def fun_inner_inner(h):
            return x+y+z+h
        return fun_inner_inner(100)
    return fun_inner(20)

f =  fun_outer(1, 2)
print f

打印的結(jié)果為. 此時(shí)fun_outer(1, 2)得到的是一個(gè)函數(shù)對(duì)象,該函數(shù)對(duì)象攜帶了兩個(gè)參數(shù)值,即x=1y=2。
如何讓它進(jìn)一步計(jì)算呢,此時(shí)我們?cè)賵?zhí)行f(3)就會(huì)返回結(jié)果6

每次返回的函數(shù)都是不同的對(duì)象
f1 = fun_outer(1, 2)
f2 = fun_outer(1, 2)
print f1
print f2

print的結(jié)果為:



內(nèi)部函數(shù)本身被返回時(shí),所攜帶的參數(shù)或局部變量時(shí)return那一刻的值

例如在函數(shù)內(nèi)有循環(huán),內(nèi)部函數(shù)引用的循環(huán)變量。

def fun_outer(x, y):
    funcs = []
    for i in range(0,3):
        def fun_inner():
            return x+y+i
        funcs.append(fun_inner)
    return funcs

func1, func2, func3 = fun_outer(1, 2)
print func1(),func2(),func3()

打印結(jié)果竟然三個(gè)函數(shù)都是5.其實(shí)這時(shí)候func_outer函數(shù)在返回一個(gè)函數(shù)列表的時(shí)候,i已經(jīng)循環(huán)到2了。因此func1、func2func3攜帶的i參數(shù)都已經(jīng)是2了。因此最終計(jì)算結(jié)果都是5.
如何實(shí)現(xiàn)在有循環(huán)變量的時(shí)候,返回的函數(shù)攜帶的變量都是循環(huán)當(dāng)時(shí)的值呢?
方法是再創(chuàng)建一個(gè)函數(shù),用該函數(shù)的參數(shù)綁定循環(huán)變量當(dāng)前的值,無論該循環(huán)變量后續(xù)如何更改,已綁定到函數(shù)參數(shù)的值不變.

def fun_outer(x, y):
    funcs = []
    for i in range(0,3):
        def fun_inner(c):
            def fun_inner_inner():
                return x+y+c
            return fun_inner_inner
        funcs.append(fun_inner(i))
    return funcs

func1, func2, func3 = fun_outer(1, 2)
print func1(),func2(),func3()

打印結(jié)果:3 4 5

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/38243.html

相關(guān)文章

  • python學(xué)習(xí)筆記之一(.py文件里輸入中文報(bào)錯(cuò))

    摘要:定義默認(rèn)參數(shù)要牢記一點(diǎn)默認(rèn)參數(shù)必須指向不變對(duì)象尾遞歸調(diào)用函數(shù)本身,但是的返回值不包含表達(dá)式。而尾指針相當(dāng)于把常規(guī)的遞歸反過來,增加一層遞歸的同時(shí)釋放前一個(gè)遞歸指針,所以能夠始終保持只有一個(gè)棧幀在使用中。 教程 1、python大小寫敏感 如果字符串里面有很多字符都需要轉(zhuǎn)義,就需要加很多,為了簡化,Python還允許用r表示內(nèi)部的字符串默認(rèn)不轉(zhuǎn)義 >>> print ...

    heartFollower 評(píng)論0 收藏0
  • Python 3 學(xué)習(xí)筆記之——變量作用域、模塊和包

    摘要:局部變量只能在其被聲明的函數(shù)內(nèi)部訪問,而全局變量可以在整個(gè)程序范圍內(nèi)訪問。調(diào)用函數(shù)時(shí),所有在函數(shù)內(nèi)聲明的變量名稱都將被加入到作用域中。 1. 變量作用域 Python 中,程序的變量并不是在哪個(gè)位置都可以訪問的,訪問權(quán)限決定于這個(gè)變量是在哪里賦值的。變量的作用域決定了在哪一部分程序可以訪問哪個(gè)特定的變量名稱。Python 的作用域一共有4種,分別是: L (Local) 局部作用...

    lijinke666 評(píng)論0 收藏0
  • Python學(xué)習(xí)筆記

    摘要:數(shù)字和字符串,不能改變對(duì)象本身,只能改變引用的指向,稱為不可變數(shù)據(jù)對(duì)象。從開始,依次增加的值,直至等于或者大于將會(huì)輸出。該函數(shù)輸入姓名和各科的成績,輸出姓名和總共成績。表明該參數(shù)是關(guān)鍵字參數(shù),通常來講關(guān)鍵字參數(shù)是放在函數(shù)參數(shù)列表的最后。 基礎(chǔ) 局部變量與全局變量 函數(shù)中使用的變量是局部的 如果在外面的變量在函數(shù)中使用,需要加global關(guān)鍵字 APPLY = 100 # 全局變量 a ...

    anquan 評(píng)論0 收藏0
  • python學(xué)習(xí)筆記

    摘要:在循環(huán)外使用今天在練習(xí)一個(gè)題目求之內(nèi)的素?cái)?shù)。表示從倒數(shù)第一個(gè)開始往前數(shù)如果是的話則表示從正數(shù)第一個(gè)到最后一個(gè)。同時(shí),閉包要求外部函數(shù)的返回值是內(nèi)部函數(shù)的函數(shù)名。 18. random()的用法 #隨機(jī)整數(shù): >>> import random >>> random.randint(0,99) 21 #隨機(jī)選取0到100間的偶數(shù): >>> import random >>> rando...

    張漢慶 評(píng)論0 收藏0
  • Python 3 學(xué)習(xí)筆記之——面向?qū)ο?/b>

    摘要:類的介紹類用來描述具有相同的屬性和方法的對(duì)象的集合。類變量類變量在整個(gè)實(shí)例化的對(duì)象中是公用的。類的定義語法格式如下類有一個(gè)名為的特殊方法,也即是構(gòu)造函數(shù),該方法會(huì)在定義對(duì)象的時(shí)候自動(dòng)調(diào)用,可以通過參數(shù)傳遞來對(duì)類的實(shí)例進(jìn)行設(shè)定。 1. 類的介紹 類(Class) 用來描述具有相同的屬性和方法的對(duì)象的集合。它定義了該集合中每個(gè)對(duì)象所共有的屬性和方法。對(duì)象是類的實(shí)例,類是對(duì)象的抽象。 ...

    yzzz 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<