Python底層封裝實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Python底層封裝實(shí)現(xiàn)方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
事實(shí)上,python封裝特性的實(shí)現(xiàn)純屬“投機(jī)取巧”,之所以類對(duì)象無(wú)法直接調(diào)用私有方法和屬性,是因?yàn)榈讓訉?shí)現(xiàn)時(shí),python偷偷改變了它們的名稱。
python在底層實(shí)現(xiàn)時(shí),將它們的名稱都偷偷改成了"_類名__屬性(方法)名"的格式
class Person:
def setname(self, name):
if len(name) < 3:
raise ValueError('名稱長(zhǎng)度必須大于3!')
self.__name = name
def getname(self):
return self.__name
#為name配置setter和getter方法
name = property(getname, setname)
def setage(self, age):
if age < 100:
self.__age = age
else:
raise ValueError('年齡必須小于100!')
def getage(self):
return self.__age
#為age配置getter和setter方法
age = property(getage, setage)
#定義私有方法
def __display(self):
print(self.__name, "今年", self.__age, "歲。")
xiaobai = Person()
xiaobai.name = "xiaobai"
xiaobai.age = 20
#直接調(diào)用隱藏的display()方法
xiaobai._Person__display()
xiaobai 今年 20 歲。
總結(jié):python類中所有的屬性和方法,都是公有的,如果希望python底層修改類屬性或者類方法的名稱,以此將它們隱藏起來(lái),只需將它們的名稱前添加雙下劃線("__")即可。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python3中的logging記錄日志實(shí)現(xiàn)過(guò)程及封裝成類的操作
- Python發(fā)送郵件封裝實(shí)現(xiàn)過(guò)程詳解
- Python接口測(cè)試數(shù)據(jù)庫(kù)封裝實(shí)現(xiàn)原理
- python多進(jìn)程使用函數(shù)封裝實(shí)例
- Python實(shí)現(xiàn)對(duì)adb命令封裝
- 基于python+selenium的二次封裝的實(shí)現(xiàn)
- Python3使用xml.dom.minidom和xml.etree模塊兒解析xml文件封裝函數(shù)的方法
- 簡(jiǎn)單了解如何封裝自己的Python包
相關(guān)文章
Python中創(chuàng)建包和增添包的路徑(sys.path.append())
本文主要介紹了Python中創(chuàng)建包和增添包的路徑(sys.path.append()),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01
python3調(diào)用ansible?api使用實(shí)例例說(shuō)明
這篇文章主要為大家介紹了python3?調(diào)用ansible?api使用說(shuō)明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
python調(diào)用百度地圖WEB服務(wù)API獲取地點(diǎn)對(duì)應(yīng)坐標(biāo)值
這篇文章主要為大家詳細(xì)介紹了python調(diào)用百度地圖WEB服務(wù)API獲取地點(diǎn)對(duì)應(yīng)坐標(biāo)值,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
基于asyncio 異步協(xié)程框架實(shí)現(xiàn)收集B站直播彈幕
本文給大家分享的是基于asyncio 異步協(xié)程框架實(shí)現(xiàn)收集B站直播彈幕收集系統(tǒng)的簡(jiǎn)單設(shè)計(jì),并附上源碼,有需要的小伙伴可以參考下2016-09-09
關(guān)于python的xlwings與VBA間的互相調(diào)用
這篇文章主要介紹了關(guān)于python的xlwings與VBA間的互相調(diào)用,VBA是一種通用應(yīng)用軟件腳本語(yǔ)言,Excel包含和許多功能強(qiáng)大的數(shù)據(jù)分析對(duì)象,例如工作表、圖表、數(shù)據(jù)透視表以及大量的數(shù)學(xué)、財(cái)務(wù)、工程和通用業(yè)務(wù)函數(shù),配合VBA可以運(yùn)用這些對(duì)象開(kāi)發(fā)出自動(dòng)程序2023-07-07

