一、定義
- 類是對一系列具有相同特征和行為的事物的統稱,是一個抽象的概念,不是真實存在的事物,
- 物件是類創建出來的真實存在的事物,
- 開發中,先有類,再有物件,eg:學生類、學生甲物件
#定義洗衣機類 """ class類名(): 代碼 """ class Washer(): def wash(self): # self指得是呼叫該函式的物件, print('能洗衣服') #創建物件 #物件名=類名() heier=Washer() print(heier) heier.wash()
二、魔法方法
在python中,__ xx __()的函式叫做魔法方法,指的是具有特殊功能的函式,
P.s:兩邊都是兩個下劃線
1、__init__()
初始化物件
class Washer(): def __init__(self,high,width): self.high=high self.width=width def wath(self): print(f'洗衣機的寬度{self.width},') print(f'洗衣機高度{self.high}') heier1 = Washer(10,20) heier1.wath()""" 洗衣機的寬度20, 洗衣機高度10 """
2、__str__()
在使用print輸出物件的時候,默認列印物件的記憶體地址,
如果類定義了__str__方法,那么就會列印從這個方法中return的資料,
class Washer(): def __init__(self): self.high=500 def __str__(self): return '解釋說明,類的說明或物件狀態的說明' heier1 = Washer() print(heier1) """ 解釋說明,類的說明或物件狀態的說明 """
3、__del__()
但洗掉物件時呼叫
class Washer(): def __init__(self): self.high=500 def __del__(self): print('物件洗掉') heier1 = Washer() """ 物件洗掉 """
三、案例實作
1、烤地瓜
class SweetPotato(): def __init__(self): self.time = 0 self.static = '生的' self.condiments = [] def cook(self, time): while True: self.time += 1 if self.time>time: break if 0 <= self.time < 3: self.static = '生的' elif 3 <= self.time < 5: self.static = '半生不熟' elif 5 <= self.time < 8: self.static = '熟了' elif 8 <= self.time: self.static = '糊了' print(self) def __str__(self): return f'地瓜烤了{self.time}分鐘,狀態為{self.static}' def __del__(self): print('刪了刪了') digua1 = SweetPotato() digua1.cook(10)
2、搬家具
class Furniture(): def __init__(self, name, area): self.name = name self.area = area class Home(): def __init__(self, address, area): self.address = address self.area = area self.free_area = area self.furniture = [] def __str__(self): return f'房子地理位置{self.address},房屋面積是{self.area},房屋剩余面積是{self.free_area},家具{self.furniture}' def add_furniture(self, item): if item.area <= self.free_area: self.furniture.append(item.name) self.free_area -= item.area else: print('家具太大') bed = Furniture('雙人床',6) safa = Furniture('沙發',6) jia=Home('北京',1000) print(jia) jia.add_furniture(bed) print(jia) jia.add_furniture(safa) print(jia) """ 房子地理位置北京,房屋面積是1000,房屋剩余面積是1000,家具[] 房子地理位置北京,房屋面積是1000,房屋剩余面積是994,家具['雙人床'] 房子地理位置北京,房屋面積是1000,房屋剩余面積是988,家具['雙人床', '沙發'] """
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/162482.html
標籤:Python
