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