1. 程式人生 > >python 003 python基礎 類的使用

python 003 python基礎 類的使用

一個簡單的類 User

class User():
	def __init__(self,name,age): # 下劃線是長的下劃線
		self.name=name
		self.age=age
		
	def eat_food(self):
		print(self.name.title())
		
	def sleep(self):
		print(self.name.title()+"--年齡:"+str(self.age)+" 需要睡覺")
		
# 例項化User類 並呼叫其中的屬性和方法		
user01=User("lili",23)
print(user01.name+"---------"+str(user01.age))
user01.eat_food()
user01.sleep()

修改類中屬性的值 帶初始值的屬性

# 例項化類 並呼叫其中的屬性及方法		
user01=User("lili",23)
print(user01.name+"---------"+str(user01.age))
user01.eat_food()
user01.sleep()

# 修改類中屬性的值 帶初始值的屬性

class Car():
	def __init__(self,brand,color): 
		self.brand=brand
		self.color=color
		self.mileage=0
		
	def print_mileage(self):
		return self.mileage
		
	# 新增修改里程的方法
	def modify_mileage(self,ss):
		if self.mileage<=ss:
			self.mileage=ss
		else:
			print("修改的里程是小於原來里程數!!")
	# 添加里程增加的方法
	def add_mileage(self,add_ss):
		self.mileage+=add_ss
		
car001=Car("QQ","red")
print("汽車的品牌: "+car001.brand+" 汽車的顏色: "+car001.color)
car_mileage=car001.print_mileage()
print("汽車的行駛里程: "+str(car_mileage)) #汽車的行駛里程: 0 結果

car001.modify_mileage(100)
car_mileage=car001.print_mileage()
print("汽車的行駛里程: "+str(car_mileage)) #汽車的行駛里程: 100

car001.modify_mileage(20) #修改的里程是小於原來里程數!!

car001.add_mileage(40)
car_mileage=car001.print_mileage()
print("汽車的行駛里程: "+str(car_mileage)) #汽車的行駛里程: 140

繼承

繼承 一個類繼承另一個類時,他將自動獲取另一個類的所有屬性和方法,原有的類成為父類 新類成為子類,同時子類可以定義自己的屬性和方法

# 類的繼承
class ElectricCar(Car):
	def __init__(self,brand,color):
		super().__init__(brand,color)
		
# 覆蓋方法
	def print_brand_color(self):
		print("覆蓋父類的方法---只打印顏色-"+self.color)

#呼叫
electri_car001=ElectricCar("bm","write")
electri_car001.print_brand_color() #bm----write 可以呼叫父類的方法   覆蓋父類的方法---只打印顏色-write
class ElectricCar(Car):
	def __init__(self,brand,color):
		super().__init__(brand,color)
		**self.battery=70**
	
		
# 覆蓋方法
	def print_brand_color(self):
		print("覆蓋父類的方法---只打印顏色-"+self.color)
		
	# *子類自己的方法*
	def print_battery(self):
		print(self.battery)
		
electri_car001=ElectricCar("bm","write")
electri_car001.print_brand_color()   #bm----write 可以呼叫父類的方法   覆蓋父類的方法---只打印顏色-write
electri_car001.print_battery()    # 70

在類中呼叫別的類作為屬性

#電池類
class Battery():
	def __init__(self,batt=70):
		self.batt=batt
		
	def print_battery(self):
		print("電池的續航能力是:"+str(self.batt))
	
# 電動車類	
class ElectricCar(Car):
	def __init__(self,brand,color):
		super().__init__(brand,color)
		**self.battery=Battery(50)**
	
		
# 覆蓋方法
	def print_brand_color(self):
		print("覆蓋父類的方法---只打印顏色-"+self.color)
		
	# 子類自己的方法
	def print_battery(self):
		**print(self.battery.batt)**
		
electri_car001=ElectricCar("bm","write")
electri_car001.print_brand_color()   #bm----write 可以呼叫父類的方法   覆蓋父類的方法---只打印顏色-write
electri_car001.print_battery()    # 50

可以將類進行模組化 在檔案的最上面匯入類 建立例項 使用方法

class Car():
	def __init__(self,brand,color):
		self.brand=brand
		self.color=color
	
	def print_brand_color(self):
		print("品牌: "+self.brand+"-------顏色: "+self.color)

匯入Car

from car import Car 
 
car001=Car("QQ","red")
car001.print_brand_color()    #品牌: QQ-------顏色: red