物件導向程式設計

2022-03-18 21:43:57 字數 3566 閱讀 8184

'''

程式=資料+功能

學生的容器=學生的資料+學生的功能

課程的容器=課程的資料+課程的功能

粉撲、眼影、各種顏料=》原材料=》資料

眉筆、小刷子 =》工具 =》功能

模組是乙個物件,列表字典元組集合也可以作為物件,是種思想,

#student.py

# 學生的資料

stu_name='egon'

stu_age=18

stu_gender='male'

# 學生的功能

def tell_stu_info():

print('學生資訊:名字:%s 年齡:%s 性別:%s' %(stu_name,stu_age,stu_gender))

def set_info(x,y,z):

stu_name=x

stu_age=y

stu_gender=z

'''

​ 提高程式的解耦合程度,進而提公升了程式的可擴充套件性

類是物件相似資料與功能的集合體

類體中最常見的是變數函式的定義,但是類體中也可以包含任意其他**

注意:類體**在定義階段就會立即執行,會產生類的命名空間

(定義階段就產生)

# 類名推薦使用駝峰體

class student:

# 1、變數的定義

school_name='某某大學'

count = 0

# 2、功能的定義

def __init__(self, name, age):

student.count += 1

self.name = name

self.age = age

def stu_info(self, stu_name, stu_age):

print(f'學生資訊:姓名: 年齡:')

print("歡迎來到%s" % school_name)

# 屬性訪問的語法

# 1、屬性訪問資料的語法

print(student.school_name)

# print(student.__dict__['school_name'])

# 2、屬性訪問功能的語法

print(student.stu_info)

# print(student.__dict__['stu_info'])

呼叫類的過程又稱之為例項化,例項化中發生的三件事

先產生乙個空物件

python自動呼叫類中的__init__方法,將空物件以及呼叫類時括號內傳入的引數一同傳給__init__方法

返回初始完的物件

# 一呼叫類,類中的__init__()就會自動的將物件stu_obj1作為第乙個引數傳入

stu1_obj=student('egon',18,'male')

# student.__init__(空物件,'egon',18,'male')

stu2_obj=student('lili',19,'female')

stu3_obj=student('jack',20,'male')

會在呼叫類時自動觸發執行,用來為物件初始化自己獨有的資料

__init__內應該存放的是為物件初始化屬性的功能,但是是可以存放任意其他**的想要在類呼叫時就立刻執行的**都可以放到該方法內

__init__方法必須返回none

student('egon', 18) 

print(stu1_obj.__init__('egon', 19)) # none

#類中存放的是物件共有的資料與功能

class student:

# 1、變數的定義

stu_school='oldboy'

count=0

# 空物件,'egon',18,'male'

def __init__(self,x,y,z):

student.count += 1

self.stu_name=x # 空物件.stu_name='egon'

self.stu_age=y # 空物件.stu_age=18

self.stu_gender=z # 空物件.stu_gender='male'

# return none

# 2、功能的定義

def tell_stu_info(self):

print('學生資訊:名字:%s 年齡:%s 性別:%s' %(

self.stu_name,

self.stu_age,

self.stu_gender

))def set_info(self,x,y,z):

self.stu_name=x

self.stu_age=y

self.stu_gender=z

def choose(self,x):

print('正在選課')

print(self,'呼叫了繫結方法')

self.course=x

stu1_obj=student('egon',18,'male')

# student.__init__(空物件,'egon',18,'male')

stu2_obj=student('lili',19,'female')

stu3_obj=student('jack',20,'male')

print(student.stu_school)
print(student.tell_stu_info)

print(student.set_info)

print(id(student.stu_school))

print(id(stu1_obj.stu_school))

print(student.tell_stu_info)

print(student.set_info)

student.tell_stu_info(stu1_obj)

student.set_info(stu1_obj,'egon',19,'male')

student.tell_stu_info(stu1_obj)

​ 繫結方法的特殊之處在於:誰來呼叫繫結方法就會將誰當做第乙個引數自動傳入

print(stu1_obj)

stu1_obj.choose('python全棧開發')

print(stu1_obj.course)

c 物件導向程式設計 物件導向

什麼是物件導向 是對現實世界理解和抽象的方法。物件導向程式設計的特點 易維護,易擴充套件,靈活性好,重用 類 對事物的抽象定義,即事物具有的共同特徵和行為。物件 即對類進行例項 類是抽象的,物件是具體的 類的定義 語法 訪問修飾符 class 類名類的成員 包括字段,屬性,方法,常量,事件和索引器等...

物件導向程式設計

物件導向程式設計 抽象 封裝 繼承 多型 單一職責原則 就乙個類而言,應該僅有乙個引起它變化的原因。開放封閉原則 軟體實體應該可以擴充套件,但是不可修改。所有的設計模式都是對不同的可變性進行封裝,從而使系統在不同的角度上達到開發封閉原則。依賴倒轉原則 a 高層不應該依賴低層,兩個都應該依賴抽象。b ...

物件導向程式設計

class team def init self self.name tampa bay buccaneers bucs team print bucs.name tampa bay buccaneers 當呼叫team 函式時,會自動呼叫init函式,self是自動傳入到init中的引數,它指向當...