python物件導向學習摘要

2021-10-18 23:40:19 字數 3286 閱讀 8290

簡稱oop,是一種程式設計的思想。oop把物件當成乙個程式的基本單元,乙個物件中包含了資料和運算元據的函式。物件導向極大地提公升了程式設計效率,使程式設計的重用性增高。

封裝,顧名思義就是將內容封裝到某個地方,以後再去呼叫被封裝在某處的內容

對於物件導向的封裝而言,其實就是使用構造方法將內容封裝到物件中,然後通過物件直接或者self間接獲取被封裝的內容。

class

wzy:

def__init__

(self,name,age,major)

: self.name = name

self.age = age

self.major = major

deflearn

(self)

:print

(f" is learning "

)def

love

(self)

:print

(f" is years old, it's time to love"

)hmz = wzy(

"hmz",21

,"dig data"

)hmz.learn(

)

繼承,物件導向中的繼承和現實生活中的繼承相同,即:子可以繼承父的內容

class

wzy:

def__init__

(self,name,age,major)

: self.name = name

self.age = age

self.major = major

deflearn

(self)

:print

(f" is learning "

)def

love

(self)

:print

(f" is years old, it's time to love"

)class

hmz(wzy)

:def

__init__

(self, name, age, major,score)

:# 只用顯示傳入的變數名即可

super()

.__init__(name, age, major)

self.score = score

defjuan

(self,name)

:print

(f"i will get and juansi "

)hmz = hmz(

"hmz",21

,"dig data"

,100

)hmz.juan(

'wzy'

)

3.1 靜態方法(@staticmethod)

使用@staticmethod將下面的函式和所屬的類截斷了,這個函式不屬於這個類,沒有類的屬性,不過還是需要通過類名進行呼叫。

class

demo

:def

__init__

(self,name)

: self.name = name

#使用staticmethod方法之後相當於下面的函式和self中的定義將無關,不能再使用self

@staticmethod

defhello

(name)

:print

(f" say hello to "

)w = demo(

"wzy"

)w.hello(

"hmz"

)

3.2 類方法(@classmethod)

類方法只能訪問類變數,不能訪問例項變數

class

person

: attribute =

"person"

def__init__

(self,name,age,gender,attribute)

: self.name = name

self.age = age

self.gender = gender

self.attribute = attribute

@classmethod

#只能訪問類中自定義的屬性名稱

defsay

(self)

:# print(f"i am a ")

print

(f"i am a "

)p = person(

"wzy",19

,'male',12

)p.say(

)

3.3 屬性方法(@property)

把乙個方法變成乙個靜態屬性,屬性就不用再加小括號了.

class

person

(object):

def__init__

(self,name)

: self.name = name

@property

defeat

(self)

:print

(f" is eating"

)p = person(

"wzy"

)p.eat

#### 4.1 成員修飾符

python的類中只有公有成員和私有成員兩種,在python中沒有關鍵字去修飾成員,預設的所有成員都是公有成員,但是私有成員是以兩個下劃線開頭的名字以標識私有成員,私有成員不能直接訪問,只能通過內部方法進行呼叫,私有成員也不能被繼承。

class

b(a)

:def

__init__

(self,name)

:super

(b,self)

.__init__(

) self.name = name

@property

defshow

(self)

:print

(f"self.name = "

)#下一行會報錯,因為私有變數不能被繼承

# print(f"self.__age = ")

print

(f"self.ge = "

)obj = b(

'wzy'

)obj.show

4.2特殊成員

__init__:類的構造方法

__del__:類中的析構方法(預設不用寫)

Java基礎學習摘要之物件導向

形式引數和返回值 方法的形參 方法返回值 基本資料型別,傳遞對應的資料型別的這種值 引用資料型別 引用型別是 具體 類 需要傳遞該類的具體物件 抽象類 需要傳遞的是該抽象類的子類物件 介面 需要傳遞該介面的子實現類物件在乙個類a中定義另乙個類b,類b就是類a的內部類.內部類的分類 不管是成員內部類還...

python物件導向學習 python物件導向學習

物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。物件導向三個概念 1.封裝 即把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法讓可信的類進...

物件導向程式設計(章節摘要)

1,物件導向有3個主要特徵,即封裝性,繼承性,多型性。2,如果乙個類藥設定繼承則必須指定notfinal,否則此類無法被繼承。3,如果要對查詢出來的資料進行排序,可以使用map或order定義函式。4,在乙個類中,預設提供的構造方法需要傳遞全部的屬性內容,如果使用者有需要,也可以利用construc...