__variable
等價(jià)于 private 變量名伟众,即不允許直接別外部訪(fǎng)問(wèn)和調(diào)用在抛。一般通過(guò)set和get操作進(jìn)行間接的訪(fǎng)問(wèn)
約定俗成的規(guī)定
- Python中,變量名類(lèi)似xxx的,也就是以雙下劃線(xiàn)開(kāi)頭授翻,并且以雙下劃線(xiàn)結(jié)尾的,是特殊變量孙咪,特殊變量是可以直接訪(fǎng)問(wèn)的
- Python中堪唐,變量名類(lèi)似__xxx是私有變量,不能直接訪(fǎng)問(wèn)翎蹈,需要通過(guò)set和get進(jìn)行間接訪(fǎng)問(wèn)
- 有些時(shí)候淮菠,你會(huì)看到以一個(gè)下劃線(xiàn)開(kāi)頭的實(shí)例變量名,比如_name荤堪,這樣的實(shí)例變量外部是可以訪(fǎng)問(wèn)的合陵,但是,按照約定俗成的規(guī)定澄阳,當(dāng)你看到這樣的變量時(shí)拥知,意思就是,“雖然我可以被訪(fǎng)問(wèn)碎赢,但是举庶,請(qǐng)把我視為私有變量,不要隨意訪(fǎng)問(wèn)”揩抡。
Ps:雙下劃線(xiàn)開(kāi)頭的實(shí)例變量是不是一定不能從外部訪(fǎng)問(wèn)呢户侥?其實(shí)也不是。不能直接訪(fǎng)問(wèn)__name是因?yàn)镻ython解釋器對(duì)外把__name變量改成了_ClassName__name.
所以峦嗤,例如Survey類(lèi)中的__num
變量仍然可以通過(guò)_Survey__num
來(lái)訪(fǎng)問(wèn)__name變量
可以通過(guò)dir(YourClassName)找到相關(guān)變量