新聞中心
利用裝飾property實(shí)現(xiàn)了對(duì)私有屬性的讀取和保護(hù),那么在VectorN中,如果我們需要通過(guò)vectorN.x\vectorN.y等方式讀取前幾個(gè)元素,是否也可以使用類似的方法呢?

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、北林ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的北林網(wǎng)站制作公司
答案當(dāng)然可以,但是我們可以這樣處理兩三個(gè)元素。如果是多個(gè)元素,我們應(yīng)該一個(gè)個(gè)創(chuàng)建方法,用property裝飾。Python提供了一種魔法方法__getattr___來(lái)處理這些問(wèn)題。
__getattr__說(shuō)明
1、當(dāng)Python解釋器試圖獲得一個(gè)實(shí)例屬性時(shí),在沒(méi)有實(shí)例字典的情況下,可以在其中找到類屬性。
2、如果沒(méi)有類屬性,可以在父類中找到,如果沒(méi)有,可以通過(guò)_getattr__函數(shù)獲得。
動(dòng)態(tài)存取屬性實(shí)例
def __getattr__(self, name):
attrStr = "xyzt"
if len(name) == 1:
index = attrStr.find(name)
if 0 <= index < len(self):
return self.contents[index]
raise IndexError("list index out of range")以上就是python動(dòng)態(tài)存取屬性的實(shí)現(xiàn),希望對(duì)大家有所幫助。更多Python學(xué)習(xí)指路:創(chuàng)新互聯(lián)python教程
本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。
當(dāng)前標(biāo)題:創(chuàng)新互聯(lián)Python教程:python動(dòng)態(tài)存取屬性如何實(shí)現(xiàn)
當(dāng)前鏈接:http://m.fisionsoft.com.cn/article/coeseod.html


咨詢
建站咨詢
