国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

python中將函數(shù)賦值給變量時(shí)需要注意的一些問(wèn)題

2020-02-16 02:05:13
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前言

本文主要給大家介紹的是關(guān)于python將函數(shù)賦值給變量時(shí)需要注意的一些問(wèn)題,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹:

見(jiàn)過(guò)兩種函數(shù)賦值給變量的形式,一種是

a=f

另一種是

a=f()

這兩種形式是有區(qū)別的,分別總結(jié)一下。

1.a=f型屬于將變量指向函數(shù)。

用代碼驗(yàn)證一下:

>>> f = abs>>> f(-10)10

說(shuō)明變量f現(xiàn)在已經(jīng)指向了abs函數(shù)本身。直接調(diào)用abs()函數(shù)和調(diào)用變量f()完全相同。這是廖雪峰老師python教程上的例子,現(xiàn)在調(diào)用f()和調(diào)用abs()是一樣的了。

再舉一個(gè)工廠函數(shù)的例子:

def maker(N):  def action(X):    return X**N  return action

這個(gè)嵌套函數(shù)的外層返回值為內(nèi)層函數(shù)的函數(shù)名,注意沒(méi)有括號(hào),這里有無(wú)括號(hào)是有很大區(qū)別的。此時(shí)調(diào)用外部函數(shù):

f=maker(2)

那么如上所述,f便指向了action函數(shù),且限制條件為N=2,可以理解為f為N等于2時(shí)的action函數(shù)。我們來(lái)調(diào)用它:

>>> f(3)9

證明f和action函數(shù)是一樣的。

2.a=f()型屬于將f()的返回值賦值給a的過(guò)程

這里的a僅僅接收f()的返回值,如果f()沒(méi)有返回值,那么a即被賦值為None。這里值得注意的一點(diǎn)是,在a=f()的執(zhí)行過(guò)程中,f()會(huì)運(yùn)行一次,這也是我剛剛搞明白的,如:

>>> def add(x,y):    z=x+y    print(z)>>>a=add(3,4)7

這里雖然只有一個(gè)賦值語(yǔ)句執(zhí)行了,但是卻輸出了結(jié)果7,說(shuō)明賦值過(guò)程函數(shù)add執(zhí)行了,然而a的值為None,且只能通過(guò)print語(yǔ)句才可以顯示。不只是賦值過(guò)程函數(shù)會(huì)執(zhí)行,寫在return語(yǔ)句中也會(huì)如此。

>>>def log(func):   def wrapper(*args, **kw):     print('call %s():' % func.__name__)     return func(*args, **kw)   return wrapper>>>@log>>>def now():    print('2015-3-25')

這是廖雪峰老師python教程裝飾器一節(jié)的例程,剛開(kāi)始我以為return func(*args,**kw)這個(gè)語(yǔ)句是返回了now()函數(shù)(即func函數(shù))的返回值,后來(lái)發(fā)現(xiàn)now函數(shù)沒(méi)有返回值,即為None,所以其實(shí)是這個(gè)語(yǔ)句在賦值過(guò)程,

 func(*args,**kw)執(zhí)行了,即函數(shù)now的print語(yǔ)句執(zhí)行了。

下面的習(xí)題中,一個(gè)變形是要求在函數(shù)調(diào)用的前后打印出'begin call'和'end call',下面一位網(wǎng)友的程序是這么寫的:

def wrapper(*args,**kw):   print(t+'begin call')   result=func(*args,**kw)   print(t+'end call')   return result            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 华容县| 申扎县| 三原县| 甘谷县| 甘泉县| 汨罗市| 万年县| 汉沽区| 焉耆| 内黄县| 云梦县| 南充市| 冷水江市| 荔浦县| 汝州市| 永和县| 涞源县| 石泉县| 怀仁县| 宁阳县| 凤庆县| 茂名市| 越西县| 石景山区| 邢台县| 武平县| 常宁市| 白玉县| 名山县| 玛多县| 吴堡县| 江阴市| 馆陶县| 揭阳市| 长子县| 闽侯县| 峨眉山市| 巫溪县| 雅安市| 来安县| 河东区|