七、類

鹤比纷恆红發表於2024-07-28

7.1 建立和使用類

class Dog():
# 一次模擬小狗的簡單嘗試””"
    def_init_(self,name,age):
# "“初始化屬性name,age"""
        self.name = name 
        self.age = age
    def sit(self):
# ""模擬小狗收到命令時蹲下"”””
        print(f"{self.name}is now sitting.")
    def roll_over(self):
# 模擬小狗收到命令時打滾”""
        print(f"{self.name}rolled over!")
# 建立例項
my_dog = Dog('Willie',6)
# 使用方法
my_dog.sit()
my_dog.roll_over()
print(f"My dog's name is {my_dog.name}.")
print(f"My dog is {my_dog.age} years old.")

7.2 使用類和例項

class Car:
# 一次模擬汽車的簡單嘗試。
	def_init_(self,make,model,year):
# 初始化描述汽車的屬性。
		self.make = make
		self.model=model
		self.year=year
	def get_descriptive_name(self):
#“返回整潔的描述性資訊。
		long_name= f"{self.year}{self.make}{self.model}"
		return long_name.title()
    def read odometer(self):
# 列印一條指出汽車裡程的訊息””
        print(f"This car has {self.odometer_reading}miles on it.")
my new car=Car('audi','a4',2019)
print(my_new_car.get_descriptive_name()
# 2019 Audi A4
 
#修改屬性的值
my_new_car.odometer_reading=23
my_new_car.read_odometer()

7.2.1 透過方法修改屬性的值

無須直接訪問屬性,而可將值傳遞給方法,由它在內部進行更新

class Car:
# 一次模擬汽車的簡單嘗試。
	def_init_(self,make,model,year):
# 初始化描述汽車的屬性。
		self.make = make
		self.model=model
		self.year=year
	def get_descriptive_name(self):
#“返回整潔的描述性資訊。
		long_name= f"{self.year}{self.make}{self.model}"
		return long_name.title()
    def read odometer(self):
# 列印一條指出汽車裡程的訊息””
        print(f"This car has {self.odometer_reading}miles on it.")
my new car=Car('audi','a4',2019)
print(my_new_car.get_descriptive_name()
 
# 透過方法修改屬性的值
my_new_car.update_odometer(-1)
my_new_car.read_odometer()
# 2019 Audi A4
# You can't roll back an odometer!
# This car has 0 miles on it.

7.3 繼承

# 電動汽車類
class ElectricCar(Car): # 括號裡要寫父類名
# 電動汽車“
    def_init_(self,make,model,year):
# 初始化父類的屬性
    super()._init_(make,model,year) # super函式呼叫父類

# 建立ElectricCar例項,賦予變數my_tesla
my_tesla=ElectricCar('tesla','model s',2019)
print(my_tesla.get_descriptive_name())
# 2019 Tesla Model S

相關文章