python基礎(chǔ)知識(shí)之私有屬性和私有方法
私有權(quán)限
面向?qū)ο笕筇匦裕悍庋b、繼承、多態(tài)
封裝的意義:
- 將屬性和方法放到一起做為一個(gè)整體,然后通過實(shí)例化對(duì)象來處理;
- 隱藏內(nèi)部實(shí)現(xiàn)細(xì)節(jié),只需要和對(duì)象及其屬性和方法交互就可以了;
- 對(duì)類的屬性和方法增加 訪問權(quán)限控制。
私有權(quán)限:在屬性名和方法名 前面 加上兩個(gè)下劃線 __
- 類的私有屬性 和 私有方法,都不能通過對(duì)象直接訪問,但是可以在本類內(nèi)部訪問;
- 類的私有屬性 和 私有方法,都不會(huì)被子類繼承,子類也無法訪問;
- 私有屬性 和 私有方法 往往用來處理類的內(nèi)部事情,不通過對(duì)象處理,起到安全作用。
私有屬性
"""
私有屬性,只需要在原屬性名前加上兩個(gè)下劃線,即可
目的: 保證數(shù)據(jù)的相對(duì)安全,
想要訪問和使用私有屬性: 定義一個(gè)公有的方法,通過這個(gè)方法使用
"""
# 案例需求: 定義People 類, 定義屬性 ICBC_money , 錢不能隨便被修改,必須是合法的終端才可以操作
class People(object):
def __init__(self):
# python中的私有本質(zhì)是 修改屬性的名字, 在創(chuàng)建對(duì)象的時(shí)候,會(huì)自動(dòng)的修改屬性名
# 在屬性名的前邊加上 _類名前綴
self.__ICBC_money = 0 # 定義私有屬性
# 定義公有的方法,提供接口,修改余額
def get_money(self):
return self.__ICBC_money
def set_money(self, money):
num = input('輸入金額:')
self.__ICBC_money += int(num)
# self.__ICBC_money += money
# 創(chuàng)建People類對(duì)象
xw = People()
# 實(shí)例對(duì)象.__dict__ 可以查看對(duì)象具有的屬性信息,類型是字典,字典的key是屬性名, 字典的value是屬性值
print('賦值之前:', xw.__dict__)
# print(xw.__ICBC_money)
xw.__ICBC_money = 1000 # 不是修改私有屬性,是重新添加一個(gè)公有屬性
print('賦值之后:', xw.__dict__)
print(xw.__ICBC_money)
print('=' * 20)
print(xw.get_money()) # 0
xw.set_money(1000)
print(xw.get_money()) # 1000
xw.set_money(-500)
print(xw.get_money()) # 500
私有方法
"""
私有方法: 在方法的前邊加上兩個(gè)__ ,就為私有方法
私有方法,不能在類外部訪問
作用: 一般作為類內(nèi)部的方法使用,不讓在外部直接調(diào)用, 保證業(yè)務(wù)邏輯不被破壞
"""
class Dog(object):
def born(self):
"""生小狗的方法, 生一個(gè)小狗,休息30天"""
print('生了一只小狗...')
self.__sleep()
def __sleep(self):
print('休息30天')
dog = Dog()
# dog.__sleep()
dog.born()
到此這篇關(guān)于python基礎(chǔ)知識(shí)之私有屬性和私有方法的文章就介紹到這了,更多相關(guān)python私有屬性和私有方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解pyppeteer(python版puppeteer)基本使用
這篇文章主要介紹了詳解pyppeteer(python版puppeteer)基本使用 ,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
PyQt5實(shí)現(xiàn)進(jìn)度條與定時(shí)器及子線程同步關(guān)聯(lián)
這篇文章主要為大家詳細(xì)介紹了PyQt5如何實(shí)現(xiàn)進(jìn)度條與定時(shí)器及子線程的同步關(guān)聯(lián),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-01-01
Python Numpy實(shí)現(xiàn)計(jì)算矩陣的均值和標(biāo)準(zhǔn)差詳解
NumPy(Numerical Python)是Python的一種開源的數(shù)值計(jì)算擴(kuò)展。這種工具可用來存儲(chǔ)和處理大型矩陣,比Python自身的嵌套列表結(jié)構(gòu)要高效的多。本文主要介紹用NumPy實(shí)現(xiàn)計(jì)算矩陣的均值和標(biāo)準(zhǔn)差,感興趣的小伙伴可以了解一下2021-11-11
python代碼中的縮進(jìn)規(guī)則詳細(xì)解釋(史上最全)
這篇文章主要介紹了代碼縮進(jìn)的重要性以及在Python語言中的具體規(guī)則,代碼縮進(jìn)有助于提高代碼的可讀性和整潔性,并且是Python語言中一個(gè)強(qiáng)制性的語法要求,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01
Python+Pygame實(shí)戰(zhàn)之吃豆豆游戲的實(shí)現(xiàn)
這篇文章主要為大家介紹了如何利用Python中的Pygame模塊實(shí)現(xiàn)仿吃豆豆游戲,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python游戲開發(fā)有一定幫助,需要的可以參考一下2022-06-06
詳解Python腳本如何消費(fèi)多個(gè)Kafka?topic
kafka-python庫是一個(gè)流行的Kafka客戶端庫,本文主要為大家詳細(xì)介紹了如何通過這個(gè)庫創(chuàng)建一個(gè)Kafka消費(fèi)者,并同時(shí)消費(fèi)多個(gè)Kafka?topic,需要的可以了解下2024-11-11

