物件導向
類(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...