python基礎之物件導向(二)

2021-10-11 21:50:59 字數 1513 閱讀 7653

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...