掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流
Python的類(lèi)就像命名空間。Python程序默認(rèn)處于全局命名空間內(nèi),類(lèi)體則處于類(lèi)命名空間內(nèi),Python 允許在全局范圍內(nèi)放置可執(zhí)行代碼,當(dāng) Python 執(zhí)行該程序時(shí),這些代碼就會(huì)獲得執(zhí)行的機(jī)會(huì)。類(lèi)似地,Python同樣允許在類(lèi)范圍內(nèi)放置可執(zhí)行代碼,當(dāng) Python 執(zhí)行該類(lèi)定義肘,這些代碼同樣會(huì)獲得執(zhí)行的機(jī)會(huì)。

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的咸陽(yáng)網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
例如,如下程序測(cè)試了類(lèi)命名空間:
class Item:
# 直接在類(lèi)空間中放置執(zhí)行性質(zhì)代碼
print('正在定義Item類(lèi)')
for i in range(10):
if i % 2 == 0 :
print('偶數(shù):', i)
else:
print('奇數(shù):', i)正如從上面代碼所看到的,程序直接在 Item 類(lèi)體中放置普通的輸出語(yǔ)句、循環(huán)語(yǔ)句、分支語(yǔ)句,這都是合法的。當(dāng)程序執(zhí)行 Item 類(lèi)時(shí),Item 類(lèi)命名空間中的這些代碼都會(huì)被執(zhí)行。
從執(zhí)行效果來(lái)看,這些可執(zhí)行代碼被放在 Python 類(lèi)命名空間與全局空間并沒(méi)有太大的區(qū)別。確實(shí)如此,這是因?yàn)槌绦虿](méi)有定義“成員”(變量或函數(shù)),這些代碼執(zhí)行之后就完了,不會(huì)留下什么。
但下面代碼就有區(qū)別。下面代碼示范了在全局空間和類(lèi)命名空間內(nèi)分別定義 lambda 表達(dá)式:
global_fn = lambda p: print('執(zhí)行l(wèi)ambda表達(dá)式,p參數(shù): ', p)
class Category:
cate_fn = lambda p: print('執(zhí)行l(wèi)ambda表達(dá)式,p參數(shù): ', p)
# 調(diào)用全局范圍內(nèi)的global_fn,為參數(shù)p傳入?yún)?shù)值
global_fn('fkit') # ①
c = Category()
# 調(diào)用類(lèi)命名空間內(nèi)的cate_fn,Python自動(dòng)綁定第一個(gè)參數(shù)
c.cate_fn() # ②上面程序分別在全局空間、類(lèi)命名空間內(nèi)定義了兩個(gè) lambda 表達(dá)式,在全局空間內(nèi)定義的 lambda 表達(dá)式就相當(dāng)于一個(gè)普通函數(shù),因此程序使用調(diào)用函數(shù)的方式來(lái)調(diào)用該 lambda 表達(dá)式,并顯式地為第一個(gè)參數(shù)綁定參數(shù)值,如上面程序中 ① 號(hào)代碼所示。
對(duì)于在類(lèi)命名空間內(nèi)定義的 lambda 表達(dá)式,則相當(dāng)于在該類(lèi)命名空間中定義了一個(gè)函數(shù),這個(gè)函數(shù)就變成了實(shí)例方法,因此程序必須使用調(diào)用方法的方式來(lái)調(diào)用該 lambda 表達(dá)式,Python 同樣會(huì)為該方法的第二個(gè)參數(shù)(相當(dāng)于 self 參數(shù))綁定參數(shù)值,如上面程序中 ② 號(hào)代碼所示。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流