在Python中通過getattr獲取對象引用的方法-創(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)頁設(shè)計、成都品牌網(wǎng)站建設(shè)、網(wǎng)頁制作、做網(wǎng)站、建網(wǎng)站。創(chuàng)新互聯(lián)公司擁有實(shí)力堅強(qiáng)的技術(shù)研發(fā)團(tuán)隊及素養(yǎng)的視覺設(shè)計專才。

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

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

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

>>> getattr(li, "append")("Moe")
>>> li
['Larry', 'Curly', 'Moe']
// 如果不確信它是多么的有用,試試這個: 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 都會引發(fā)一個異常。

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

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

廣告

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

綿陽服務(wù)器托管