際使用中的建議)
中的私有成員(2)。處于實(shí)際的運(yùn)用當(dāng)中, 該如何去施行單下劃線以及雙下劃線的應(yīng)用呢? 首先來瞧一瞧單下劃線。·其一, 單下劃線用于表示受保護(hù)的成員, 借此提醒使用者, 這些成員屬于內(nèi)部實(shí)現(xiàn)的一部分, 不應(yīng)被隨意訪問。第一, 存在這樣一種情況, 即能夠借助于子類進(jìn)行訪問進(jìn)而實(shí)現(xiàn)修改, 然而針對此操作須以審慎的態(tài)度來予以運(yùn)用。第二, 雙下劃線所適用的范疇乃是那些有著確切嚴(yán)格隱藏需求的私有成員, 其目的在于防止子類或者外部因素產(chǎn)生干擾。第一, 運(yùn)用名稱改寫機(jī)制, 第二, 能夠于類內(nèi)部實(shí)現(xiàn)安全使用, 第三, 進(jìn)而降低命名沖突所帶來的風(fēng)險(xiǎn)。再次針對屬性裝飾器以及私有成員來看一個(gè)綜合性的示例, 在這個(gè)示例里定義一個(gè)class, 也就是一個(gè)類, 在初始化該類之際定義了兩個(gè)私有屬性, 它們分別是那個(gè)以雙下劃線_起始的owner, 其中一個(gè), 接著用, 在此處 一個(gè)屬性裝飾器, 定義著owner, 還有一個(gè), 定義這兩個(gè)方法。然后用了一個(gè)方法來校驗(yàn)是不是小于0的數(shù)看一下具體的用法。首先, 進(jìn)行實(shí)例化, 其結(jié)果為(Alice, 1000) , 接著, 輸出owner, 則這種情況是不存在問題的。·然后再輸出余額也沒有問題。接著再去調(diào)用一回(500), 將它的余額予以加500這一操作, 其前提狀況是它得大于0。要是輸入金額小于或者等于0了, 在此處會(huì)拋出一個(gè)錯(cuò)誤。·此刻給出一個(gè)數(shù)值為500的量, 隨后再將之進(jìn)行輸出, 進(jìn)而查看一下余額呈現(xiàn)為1500, 不存在任何問題。·然后這里邊是給它增加了一個(gè)500。有另外一個(gè)辦法, 此辦法是為其削減一個(gè)對應(yīng)的數(shù)額。削減的數(shù)額當(dāng)中亦存有一項(xiàng)驗(yàn)證, 倘若大于當(dāng)下的余額, 則拋出一個(gè)差錯(cuò), 不能講當(dāng)下的余額是1500, 而要為其減去2000, 在此情形下它會(huì)出現(xiàn)錯(cuò)誤。·來看一下.(200)輸出.余額1300沒有問題。如果輸入一個(gè)并非正常的數(shù), 去查看它會(huì)呈現(xiàn)怎樣的反應(yīng)呢? 依舊是先進(jìn)行try操作, 令其等于負(fù)一百, 以某種方式作為e, 然后打印出e。查看一下, 輸出一筆余額, 其不能是一個(gè)負(fù)數(shù), 在這種時(shí)候, 提示了一條錯(cuò)誤的信息, 這條錯(cuò)誤源自于的方法, 此方法運(yùn)用的是屬性裝飾器中的方法, 之后給它賦予一個(gè)值, 該值是小于0的, 正因如此, 這個(gè)地方拋出了一個(gè)錯(cuò)誤。要是去直接訪問私有的屬性, 來瞧一瞧, print, 我打算直接瞅一瞅print(.), 當(dāng)作e: print(e), 它給出提示說沒有這個(gè)屬性, Ban這是訪問私有屬性了, 導(dǎo)致引發(fā)了這樣一個(gè)錯(cuò)誤。憑借這種途徑能夠達(dá)成對數(shù)據(jù)的封裝, 保證類的使用者借助定義好的接口, 像是和的方法與對象展開交互, 而不會(huì)徑直去修改私有的屬性。