class myclass:
name = '名字'
def __init__(self):
print('沒有找到屬性')
def get_name(self):
name = self.name
print(name)
p1 = myclass() #當p1沒有屬性時__init__方法會自動呼叫
p1.get_name()
封裝是物件導向的三大特性之一
封裝是指隱藏物件中一些不希望被外部所訪問到的屬性或方法
我們也可以提供給乙個getter()和setter()方法是外部可以訪問到屬性
使用封裝,確實增加了類的定義的複雜程度,但是它也確保了資料的安全
class myclass:
def __init__(self,name):
self.hidden_name = name #通過修改名字的方式來告訴別人不能改(君子協議)
def get_name(self): #一種讀的方式,如果只有getter沒有setter方法就是唯讀
return self.hidden_name
def set_name(self,name): #一種修改方法,給出這個就可改
self.hidden_name = name
p1 = myclass('名字1')
print(p1.get_name())
p1.set_name('名字2')
print(p1.get_name())
# class myclass:
# def __init__(self,name):
# self.__name = name #這種雙下滑線的封裝方式其實就是改了名字,__屬性名-->_類名__屬性名
# p1 = myclass('名字1')
# print(p1._myclass__name) #雖然可以訪問但是不推薦這樣寫
class myclass:
def __init__(self,name):
self._name = name
@property
def name(self):
return self._name
@name.setter #語法:屬性名.setter
def name(self,name): #這個方法名需要與上面的唯讀方法名一致
self._name = name
p = myclass('蘭博基尼')
print(p.name) #再次呼叫時方法名不用再加()
p.name = '超跑'
print(p.name)
Python之物件導向 物件導向基礎
一 面向過程 物件導向對比 1 面向過程 根據業務邏輯從上到下寫壘 2 函式式思想 將某功能 封裝到函式中,日後便無需重複編寫,僅呼叫函式即可 3 物件導向 對函式進行分類和封裝 1 2 3一步一步抽象,函式式是走向物件導向的中間步驟 函式式的應用場景 各個函式之間是獨立且無共用的資料 物件導向程式...
Python 基礎之物件導向
封裝繼承 類和型別 多型意味著就算不知道變數所引用的物件型別是什麼,還是能對它進行操作,而它也會根據物件 或者類 型別的不同而表現出不同的行為。程式得到了乙個物件,但是並不知道它是怎麼實現的 它可能有多種 形狀 繫結到物件特性上面的函式稱為方法 method 對於乙個變數x來說,我們不需要知道他是字...
Python 基礎之物件導向
python 是乙個高層次的結合了解釋性 編譯性 互動性和物件導向的指令碼語言。python 的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。python 是一種解釋型語言 這意味著開發過程中沒有了編譯這個環節。類似於php和perl...