Python屬性私有化詳解
前言
在做程序的過(guò)程中,有時(shí)候程序猿不想讓外人動(dòng)一些值,這個(gè)時(shí)候,就可以考慮把一些變量進(jìn)行私有化
__屬性:就是將屬性私有化,訪問(wèn)范圍僅僅限于類中。

私有化屬性
私有化屬性只需要以雙下劃線開(kāi)頭,聲明該屬性為私有屬性即可,聲明之后就不能在類外部使用或直接訪問(wèn)。
class Student:
__age = 10
a = Student()
print(a.__age)

私有化屬性的有三個(gè)特性:
- 不能在類外面訪問(wèn)
- 可以在類里面訪問(wèn),修改
- 子類不能繼承私有化屬性
set和get
set是為了賦值,給私有化屬性賦值。
get是為了取值,把私有化屬性的值取出來(lái)。
class Student:
__age = 10
def __init__(self ,age):
self.age = age
# 定義公有的set方法和get方法
def set_age(self ,age):
self.__age = age
def get_age(self):
return self.__age
a = Student('100')
print(a.get_age())
a.set_age(1000)
print(a.get_age())

私有化好處:
隱藏屬性不被外界隨意修改(在set里面加一些判斷,防止被隨意修改)
也可以修改,通過(guò)函數(shù)完成
def setXXX(self,xxx):
篩選賦值內(nèi)容
if 條件:
賦值
else:
不賦值
如果想獲取具體的某一個(gè)屬性,使用get函數(shù)來(lái)完成
def getXXX(self):
return 要返回的某一個(gè)屬性
通過(guò)set和get函數(shù)即可完成對(duì)私有化屬性的一些操作。
裝飾器@property
class Stu:
def __init__(self,name,age):
self.name = name
self.__age = age
def set_age(self,age):
if age > 0 and age < 100:
self.__age = age
else:
print('不在規(guī)定范圍內(nèi)')
def get_age(self):
return self.__age
def __str__(self):
return 'name: {} \nage:{}'.format(self.name,self.__age)
a = Stu('lisan',20)
a.name = 'wangwu'
print(a.name)
a.set_age(30)
print(a.get_age())
當(dāng)我想訪問(wèn)私有屬性的時(shí)候,只能通過(guò)get和set函數(shù)來(lái)訪問(wèn)。
通過(guò)裝飾器,就可以讓私有屬性當(dāng)作屬性一樣去調(diào)用。
class Stu:
def __init__(self,name,age):
self.name = name
self.__age = age
@property
def age(self):
return self.__age
@age.setter
def age(self,age):
self.__age = age
def __str__(self):
return 'name: {} \nage:{}'.format(self.name,self.__age)
a = Stu('lisan',20)
a.age = 90
print(a)
a.age = 40
print(a)

到此這篇關(guān)于Python屬性私有化詳解的文章就介紹到這了,更多相關(guān)Python私有化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PYTHON正則表達(dá)式 re模塊使用說(shuō)明
正則表達(dá)式是一個(gè)復(fù)雜的主題。本文能否有助于你理解呢?那些部分是否不清晰,或在這兒沒(méi)有找到你所遇到的問(wèn)題?如果是那樣的話,請(qǐng)將建議發(fā)給作者以便改進(jìn)2011-05-05
使用Flask和Django中解決跨域請(qǐng)求問(wèn)題
這篇文章主要介紹了使用Flask和Django中解決跨域請(qǐng)求問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04
使用Python在Word中插入圖片并文字環(huán)繞的方法
在Word文檔中插入圖片能夠提供更直觀的信息,插入圖片時(shí),我們還可以調(diào)整圖片大小,以及設(shè)置合適的文字環(huán)繞方式,本文將提供兩種使用Python在Word文檔中插入圖片并設(shè)置文字環(huán)繞的方法,需要的朋友可以參考下2024-06-06
OpenCV實(shí)戰(zhàn)之OpenCV中的顏色空間
這篇文章主要介紹了OpenCV實(shí)戰(zhàn)之OpenCV中的顏色空間,解計(jì)算機(jī)視覺(jué)中常用的色彩空間,并將其用于基于顏色分割。我們還將用C?++和Python共享演示代碼,下文詳細(xì)內(nèi)容需要的小伙伴可以參考一下2022-04-04
Python基礎(chǔ)之語(yǔ)法錯(cuò)誤和異常詳解
Python有兩種錯(cuò)誤很容易辨認(rèn):語(yǔ)法錯(cuò)誤和異常.本文就給大家詳細(xì)介紹一下Python錯(cuò)誤和異常,對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助哦,需要的朋友可以參考下2021-05-05

