python之物件導向

2022-08-17 02:15:15 字數 2951 閱讀 7599

物件導向介紹

一、物件導向和面向過程

面向過程:核心過程二字,過程即解決問題的步驟,就是先幹什麼後幹什麼

基於該思想寫程式就好比在這是一條流水線,是一種機械式的思維方式

優點:複雜的過程流程化

缺點:擴充套件性差

物件導向:核心是物件二字,物件指特徵與技能的結合體

基於該思想編寫程式就好比在創造乙個世界,世界是由乙個個物件組成,是一種『上帝式』的思維方式

優點:可擴充套件性強

缺點:變成複雜度高,極容易出現過度設計的問題

2、類物件是特徵與技能的結合體,類就是一系列物件相似的特徵與技能的結合體

在現實生活中:一定是先有乙個個具體的物件,後總結出類

在程式中:一定是先定義類,後產生物件

#類體**在類的定義階段就會立刻執行

class students:

school = '巨集福教育'

def run(self):

# return 'running......'

print('running....')

stu1 = students()

stu2 = students()

stu3 = students()

print(students.school)#資料屬性

print(students.run)#函式屬性

print(stu1.school)#查詢屬性

stu1.contry = '中國'#新增屬性

del stu1.contry#刪除類屬性

stu1.school = '巨集福'#修改屬性

#例項化出不同屬性的物件

class students:

school = '巨集福教育'

def __init__(self,name, age, job):

self.name = name

self.age = age

self.job = job

def run(self):

# return 'running......'

print('running....')

stu1 = students('張三', 18, 'it')

stu2 = students('王二', 16, 'student')

stu3 = students('趙五', 19, 'teacher')

封裝封裝案例1.

01、封裝

1.封裝是面相對性一大特點

2.物件導向程式設計的第一步--將屬性和方法封裝到乙個抽象的類當中

3.外界使用類建立物件,然後讓物件呼叫方法

4.物件方法的細節都被封裝在類的內部

02、小明愛跑步

需求1.小明體重75公斤

2.小明每次跑步都會**0.5公斤

3.小明每次吃東西體重會增加1公斤

class person:

def __init__(self, name, weight):

self.name = name

self.weight = weight

def run(self):

self.weight -= 0.5

def eat(self):

self.weight += 1

def __str__(self):

return '名字:%s\n體重:%s\n' % (self.name, self.weight)

xm = person('小明', 75)

xm.eat()

xm.run()

print(xm)

#當使用print輸出物件的時候,只要自己定義了__str__(self)方法,那麼就會列印從在這個方法中return的資料

封裝案例2

需求:1、房子有戶型、總面積、家具名稱列表

房子沒有任何家具

2、家具有名字和占地面積,其中

席夢思(bed):4平公尺

衣櫃(chest): 2平公尺

餐桌(table): 1.5平公尺

3、將以上3個家具新增到房子中

4、列印房子中,要求輸出:戶型、總面積、剩餘面積、家具名稱列表

封裝案例3:

屬性可以是另外乙個類建立的物件:

class gun:#建立槍類

def __init__(self,gun_type):

self.gun_type = gun_type#初始化槍的型號

self.bullet = 0#初始化子彈的數量

def add_count(self, count):#新增子彈

self.bullet += count

def shoot(self):#射擊

if self.bullet > 0:#假如子彈數量大於0

self.bullet -= 1# 那就射擊,並且減少子彈數量

print('**.......%s' % self.bullet)

else:

print('沒有子彈啊,兄弟,別這麼坑我啊???')#否則沒有就顯示沒有子彈

class soldier:#建立乙個士兵的類

def __init__(self, name,gun=none):

self.name = name#初始化士兵的姓名

self.gun = gun#初始化槍

def fire(self):#**方法

if self.gun:#假如有槍

self.gun.shoot()#那就射擊

else:#不然就顯示沒有槍

print('沒有槍啊,兄弟,你讓我去送死嗎??')

ak47 = gun('ak47')#建立乙個槍的物件叫ak47

ak47.add_count(10)#新增10顆子彈

xsd = soldier('許三多')#例項化乙個許三多的士兵物件

xsd.gun = ak47#把槍交到許三多手中

xsd.fire()#**

python之物件導向

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

python之物件導向

python中一切皆物件 class 定義的類屬於類物件 obj1 屬於例項物件 在程式執行時,類同樣會載入到記憶體,類物件在記憶體中只有乙份,使用乙個類可以建立出很多例項物件 除了封裝例項的屬性和方法外,類物件還可以擁有自己的屬性和方法 類屬性和例項屬性 類屬性就是給類物件中定義屬性,通常用來記錄...

Python之物件導向 物件導向基礎

一 面向過程 物件導向對比 1 面向過程 根據業務邏輯從上到下寫壘 2 函式式思想 將某功能 封裝到函式中,日後便無需重複編寫,僅呼叫函式即可 3 物件導向 對函式進行分類和封裝 1 2 3一步一步抽象,函式式是走向物件導向的中間步驟 函式式的應用場景 各個函式之間是獨立且無共用的資料 物件導向程式...