第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么Python代碼使用len()函數(shù)而不是length方法?

為什么Python代碼使用len()函數(shù)而不是length方法?

慕田峪7331174 2019-09-02 09:00:26
我知道python有一個(gè)len()用于確定字符串大小的函數(shù),但我想知道為什么它不是字符串對(duì)象的方法。更新好吧,我意識(shí)到我很尷尬。__len__()實(shí)際上是一個(gè)字符串對(duì)象的方法。使用字符串對(duì)象上的len函數(shù)在Python中看到面向?qū)ο蟮拇a似乎很奇怪。此外,__len__將名稱(chēng)視為名稱(chēng)而不僅僅是len 也是奇怪的。
查看完整描述

3 回答

?
慕桂英3389331

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊

字符串確實(shí)有一個(gè)長(zhǎng)度方法: __len__()


Python中的協(xié)議是在具有長(zhǎng)度的對(duì)象上實(shí)現(xiàn)此方法,并使用內(nèi)置len()函數(shù)為您調(diào)用它,類(lèi)似于您實(shí)現(xiàn)__iter__()和使用內(nèi)置iter()函數(shù)的方式(或者使用后面的方法)對(duì)于可迭代的對(duì)象,你的場(chǎng)景。


有關(guān)更多信息,請(qǐng)參閱模擬容器類(lèi)型。


以下是關(guān)于Python協(xié)議主題的很好的閱讀:Python和最小驚訝原則


查看完整回答
反對(duì) 回復(fù) 2019-09-02
?
繁花如伊

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊

吉姆對(duì)這個(gè)問(wèn)題的回答可能有所幫助; 我把它復(fù)制在這里。引用Guido van Rossum:

首先,為了HCI的原因,我選擇了len(x)而不是x.len()(def __len __()來(lái)得晚了)。實(shí)際上有兩個(gè)相互交織的原因,都是人機(jī)交互:

(a)對(duì)于某些操作,前綴表示法只比讀后綴更好 - 前綴(和中綴?。┎僮髟跀?shù)學(xué)中有悠久的傳統(tǒng),它喜歡視覺(jué)效果幫助數(shù)學(xué)家思考問(wèn)題的符號(hào)。比較我們將x *(a + b)等公式重寫(xiě)為x a + x b的簡(jiǎn)單性,以及使用原始OO表示法做同樣事情的笨拙。

(b)當(dāng)我讀到代碼為len(x)的代碼時(shí),我知道它是在詢(xún)問(wèn)某些東西的長(zhǎng)度。這告訴我兩件事:結(jié)果是一個(gè)整數(shù),參數(shù)是某種容器。相反,當(dāng)我讀取x.len()時(shí),我必須知道x是某種實(shí)現(xiàn)接口的容器,或者是從具有標(biāo)準(zhǔn)len()的類(lèi)繼承的。當(dāng)沒(méi)有實(shí)現(xiàn)映射的類(lèi)具有g(shù)et()或keys()方法,或者不是文件的類(lèi)具有write()方法時(shí),見(jiàn)證我們偶爾會(huì)遇到的混淆。

用另一種方式說(shuō)同樣的事情,我認(rèn)為'len'是一種內(nèi)置操作。我不想失去那個(gè)。/ ...... /


查看完整回答
反對(duì) 回復(fù) 2019-09-02
  • 3 回答
  • 0 關(guān)注
  • 4656 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)