Python學習之物件導向 一)

2022-06-01 21:24:13 字數 3274 閱讀 9602

6.1.1 什麼是物件導向

面向過程式程式設計:

​ 好處:出色的完成所有的需求

​ 壞處:凡是更改或者增加一條需求,可能整個專案都隨之改變

物件導向式程式設計:

類:具有相似功能和特性的一類事物

物件:類的具體體現

類的優點:

​ 類是相似功能特徵的集合,可以讓**更清晰,更合理化

​ 類是乙個公共的模板,物件是從這個模板產出的實體

6.1.2 類

結構

class 類名:  #類名要具有意義,一般使用駝峰體命名

#類的描述

類的變數

類的函式

其中:

類的變數,公認叫做屬性(靜態屬性,靜態字段)

類的方法,公認叫做方法(動態方法,動態屬性)

例子:

class student():

""" 構建學生類 """

daily = '學習'

role = '學習技能'

def work(self):

print('每天都要上課')

def study(self):

print('公共課和專業課')

類的屬性:

1.檢視類的所有內容,使用:類名.__dict__獲取類的全部資訊

print(student.__dict__)
輸出內容中類的內建屬一些內建屬性的含義

2.使用 . 對靜態的屬性操作

print(student.daily)      #查   

student.daily = '寫**' #改

del student.role #刪

print(student.__dict__)

3.類名的角度呼叫類中的方法,一般類中的方法(除去類的方法,靜態屬性外)通過以下方式呼叫

student.work(2)  #對於動態的方法,採用這種方式呼叫

student.__dict__['work'](2) #一般不採用這種方法

6.1.3 物件

例項化過程:

物件名 = 類名() 例項化乙個物件

class student:

'''定義學生類'''

daily = '學習'

role = '學習技能'

def __init__(self):

print(self)

print('666')

def work(self):

print('每天都要上課')

def study(self):

print('公共課和專業課')

st1 = student() #比較st1的位址與self的位址

print(st1)

st2 = student()

print(st2)

實體化物件時發生的三件事:

物件的屬性

通過 物件名.屬性名 對__init__進行增刪改查,就是對物件的屬性進行操作

class student:

'''定義學生類'''

daily = '學習'

mission = '學習技能'

def __init__(self):

self.name = '蓋倫'

self.team = '德瑪西亞'

def work(self):

print('每天都要上課')

def study(self):

print('公共課和專業課')

st = student()

print(st.name)

st.role = '戰士'

print(st.__dict__) #檢視 st 的屬性

del st.role

print(st.__dict__)

物件檢視類的屬性

​ 物件只能檢視類裡的公共屬性,無法更改類的屬性,這裡需要注意的是即使使用 物件名.類裡的屬性名 進行的操作只是在物件的空間__init__裡新增了與類同名的屬性,其實二者存在於不同的記憶體空間中。

6.1.4 動態實體化物件

可以在任何位置給物件封裝屬性,在物件實體化時給在類的相應位置設定實參即可,還可以在類的方法內也可對物件的屬性進行操作。

class student:

'''定義學生類'''

daily = '學習'

mission = '抵禦外敵'

def __init__(self,na,te):

self.name = na

self.team = te

def work(self,eq):

self.equip = eq

print(f"需要裝備,為了") #仔細研究這裡屬性的呼叫,非常有意思

def study(self):

print('公共課和專業課')

st = student('蓋倫','召喚師峽谷')

print(st.__dict__)

st.work('日炎鎧甲')

print(st.__dict__)

6.1.5 self

​ self就是類中的方法的第乙個位置引數,如果通過物件執行類中的方法,直譯器就自動的將此物件空間當做實參傳給self,其實self最大的作用就是引用當前方法的呼叫者。

​ 淺顯的理解就是,在物件內部進行的相互引用或是賦值等操作,就用self,也就是self作為自己的內部相互操作加個名字,不然怎麼使用 . 呢。

class student:

'''定義學生類'''

daily = '學習'

mission = '抵禦外敵'

def __init__(self):

self.name = '蓋倫'

def work(self): #定義乙個work方法

print('現在執行的是work方法')

def study(self): #定義乙個study方法,需要借用work的方法

self.work() #使用self引數引用呼叫work()方法的物件

print('現在執行的是study方法')

s = student()

s.study()

Python學習之物件導向

物件導向是一種設計思想 1 符合人們的思考習慣 2 把執行者變成指揮者 3 簡化功能,把複雜的事情簡單化 想完成一件事,找具有這樣功能的物件 如果能找到,呼叫這個物件的功能,完成這個事 如果找不到,建立具有這樣功能的物件,再呼叫完成這個事 類是對事物的描述,是抽象的。物件是類的具體體現。類對事物的描...

python之物件導向學習0

物件導向是相對於面向過程而言的,在早期程式設計中,比如實現1 2 3 6.通過設計乙個簡單的演算法就能實現。隨著計算機技術的不斷提高,計算機被用於解決越來越複雜的問題。一切事物皆物件,通過物件導向的方式,將現實世界的事物抽象成物件,現實世界中的關係抽象成類 繼承,幫助人們實現對現實世界的抽象與數字建...

python之物件導向

類 是乙個特殊的物件,class a 定義的類屬於 類物件 類的例項 obj a 屬於 例項物件 例項屬性 init 定義例項屬性 例項方法 self 物件名.方法名 類屬性 針對類物件定義的屬性,訪問類屬性方法 類名.類屬性 物件名.類屬性 類方法 針對類物件定義的方法,內部可直接訪問類屬性和其他...