python 物件導向

2021-10-05 17:30:44 字數 3974 閱讀 6943

物件導向

類(class): 用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性【資訊】和方法【要完成的事情】。物件是類的例項。類是抽象的,不能直接使用。

例項化:建立乙個類的例項,類的具體物件。

物件:通過類定義的資料結構例項。物件包括兩個資料成員(類變數和例項變數)和方法。

定義類的格式

class 類(): pass
將類轉換為物件

例項化——例項化指在物件導向程式設計中,使用類建立物件的過程稱為例項化,是將乙個抽象的概念具體化的過程

例項化過程—— 類名 物件名 = 類名(引數1,引數2, ...)

示例1:

小明今年18歲,身高1.75,每天早上要跑步,跑完去吃飯

小美今年16歲,身高1.65,小美不跑步,喜歡吃東西

class people():

# 初始化方法

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

# 將self和name封裝在一起,=後name為所傳入的值

self.name = name

self.age = age

self.height = height

# 字串方法,用來返回字串

def __str__(self):

return 'i am %s' %self.name

def eat(self):

print('%s is eating' %self.name)

def run(self):

print('%s is running' %self.name)

p1 = people('dsd',24,183)

print(p1.name,p1.age,p1.height)

p1.run()

p1.eat()

print(p1)

示例2:

1.小明和小美都愛跑步

2.小美體重45.0公斤

3.小明體重75.0公斤

4.每次跑步都會減少0.5公斤

5.每次吃東西都會增加1公斤 

class people():

def __init__(self,name,weight):

self.name = name

self.weight = weight

def __str__(self):

return '%s weight is %.2f' %(self.name,self.weight)

def eat(self):

self.weight += 1.0

def run(self):

self.weight -= 0.5

xiaoming = people('xiaoming',75.0)

xiaoming.eat()

print(xiaoming)

xiaoming.run()

print(xiaoming)

xiaomei = people('xiaoming',45.0)

xiaomei.run()

print(xiaomei)

xiaomei.eat()

print(xiaomei)

示例3:

棧:如何用類方法定義乙個棧 

class stack(object):

def __init__(self):

# 定義乙個空列表,相當於乙個空棧,用來儲存和讀取

self.stack =

# 用來檢測長度

def __len__(self):

return len(self.stack)

def top(self):

# 判斷棧是否為空

if not self.is_empty():

return self.stack[-1]

# 丟擲異常

raise exception('stack is empty!')

def push(self,element):

def pop(self):

# 判斷棧是否為空

if self.is_empty():

raise exception('stack is empty!')

else:

item = self.stack.pop()

return item

def length(self):

return len(self.stack)

def is_empty(self):

return len(self.stack) == 0

# 例項化

stack = stack()

stack.push(1)

stack.push(2)

print(stack.length())

item = stack.pop()

print('the pop item is: %s' %item)

print(stack.top())

print(stack.is_empty())

print(stack.pop())

print(stack.length())

print(stack.is_empty())

示例4:

1.房子有戶型,總面積和家具名稱列表

新房子沒有任何的家具

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

床:佔4平公尺

衣櫃:佔2平公尺

餐桌:佔1.5平公尺

3.將以上三件家具新增到房子中

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

class furniture(object):

def __init__(self,name,area):

self.name = name

self.area = area

def __str__(self):

return '[%s] 占地 (%.2f) 平公尺' %(self.name,self.area)

# 房子

class house(object):

def __init__(self,unittype,area):

# 戶型

self.unittype = unittype

# 總面積

self.area = area

# 家具名稱列表

self.furniture_list =

# 剩餘面積

self.free_area = area

def __str__(self):

return ' 戶型: %s\n 總面積: %.2f\n 剩餘面積:%.2f\n 家具列表:%s\n' \

%(self.unittype,self.area,self.free_area,self.furniture_list)

def add_fur(self,item):

self.free_area -= item.area

bed = furniture('bed',4)

yigui = furniture('yigui',2)

table = furniture('table',1.5)

home = house('dsd',200)

home.add_fur(bed)

home.add_fur(yigui)

print(home)

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

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

python物件導向總結 Python物件導向總結

python 物件導向 oop 1 物件導向 是乙個更大封裝,把乙個物件封裝多個方法 2 類 是對一些具有相同特徵或行為的事物的乙個統稱,是抽象的,不能直接使用 特徵被稱為屬性 行為被稱為方法 3 物件 是由類建立出來的乙個具體的存在,可以直接使用 先有類再有物件,類只有乙個,而物件可以有多個 類中...

python登入物件導向 python 物件導向

一 屬性和方法 1.a a 例項屬性 通過例項物件來新增的屬性就是例項屬性 a.count 10 例項方法都是在類中直接定義的 以self為第乙個引數的方法都是例項方法 當通過例項物件呼叫時,會自動傳遞當前物件作為self傳入 當通過類物件呼叫時,不會自動傳遞self a.test 等價於 a.te...