在Python中通過getattr獲取對(duì)象引用的方法-創(chuàng)新互聯(lián)

getattr函數(shù)

你所需要的網(wǎng)站建設(shè)服務(wù),我們均能行業(yè)靠前的水平為你提供.標(biāo)準(zhǔn)是產(chǎn)品質(zhì)量的保證,主要從事網(wǎng)站制作、做網(wǎng)站、企業(yè)網(wǎng)站建設(shè)、成都手機(jī)網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、成都品牌網(wǎng)站建設(shè)、網(wǎng)頁(yè)制作、做網(wǎng)站、建網(wǎng)站。創(chuàng)新互聯(lián)公司擁有實(shí)力堅(jiān)強(qiáng)的技術(shù)研發(fā)團(tuán)隊(duì)及素養(yǎng)的視覺設(shè)計(jì)專才。

(1)使用 getattr 函數(shù),可以得到一個(gè)直到運(yùn)行時(shí)才知道名稱的函數(shù)的引用。

>>> li = ["Larry", "Curly"]
>>> li.pop
<built-in method pop of list object at 0x7fb75c255518>
// 該語(yǔ)句獲取列表的 pop 方法的引用,注意該語(yǔ)句并不是調(diào)用 pop 方法,調(diào)用 pop 方法的應(yīng)該是 li.pop(), 這里指的是方法對(duì)象本身。

>>> getattr(li, "pop")
<built-in method pop of list object at 0x7fb75c2556c8>
// 該語(yǔ)句也是返回 pop 方法的引用,但是此時(shí),方法名稱是作為一個(gè)字符串參數(shù)傳遞給 getattr 函數(shù)的, getattr 是一個(gè)有用到令人無法致信的內(nèi)置函數(shù),可以返回任何對(duì)象的任何屬性。在這個(gè)例子中,對(duì)象是一個(gè) list, 屬性是 pop 方法。

>>> getattr(li, "append")("Moe")
>>> li
['Larry', 'Curly', 'Moe']
// 如果不確信它是多么的有用,試試這個(gè): getattr 的返回值是 方法, 然后你就可以調(diào)用它,就像直接使用 li.append("Moe") 一樣, 但是實(shí)際上你沒有直接調(diào)用函數(shù), 只是以字符串形式指定了函數(shù)名稱。

>>> getattr({}, "clear")
<built-in method clear of dict object at 0x7fb75c273b40>
// getattr 也可以作用于字典。

>>> getattr((), "pop")
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'pop'
// 理論上, getattr 可以作用于元組,但是由于元組沒有方法,所以不管你指定什么屬性名稱 getattr 都會(huì)引發(fā)一個(gè)異常。

新聞標(biāo)題:在Python中通過getattr獲取對(duì)象引用的方法-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://bm7419.com/article12/ipsdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站排名、微信小程序、網(wǎng)站營(yíng)銷、軟件開發(fā)、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管