"""《Python编程从入门到实践》"""
"""2021.12.20"""
"""
第九章 类
9.1创建和使用类
9.2使用类和实例
"""
# 教材9.1.1代码,创建Dog类
class Dog():
"""一次模拟小狗的简单尝试,创建Dog类"""
def __init__(self, name, age):
"""初始化属性name和age"""
self.name = name
self.age = age
def sit(self):
"""模拟小狗被命令时蹲下"""
print(self.name.title() + " is now sitting.")
def roll_over(self):
"""模拟小狗被命令时打滚"""
print(self.name.title() + " rolled over!")
# 教材9.1.2代码,根据类创建实例
def dog_study():
# 根据Dog类创建实例
my_dog = Dog("white", 6)
print("My dog's name is " + my_dog.name.title() + ".")
print("my dog is " + str(my_dog.age) + " years old.")
my_dog.sit()
my_dog.roll_over()
your_dog = Dog("black", 5)
print("\nYour dog's name is " + your_dog.name.title() + ".")
print("Your dog is " + str(your_dog.age) + " years old.")
your_dog.sit()
your_dog.roll_over()
# 9.1 习题9-1 9-4
class Restaurants():
"""创建restaurant类"""
def __init__(self, restaurant_name, cuisine_type):
# 习题9-1
self.restaurant_name = restaurant_name
self.cuisine_type = cuisine_type
# 习题9-4
self.number_served = 0
# 习题9-1
def describe_restaurant(self):
print("The restaurant's name is " + self.restaurant_name.title())
print("The restaurant's cuisine type is " + self.cuisine_type.title() + "\n")
# 习题9-1
def open_restaurant(self):
print("The restaurant is opening now." + "\n")
# 习题9-4
def set_number_served(self, number):
self.number_served = number
# 习题9-4
def increment_number_served(self, add_numbers):
self.number_served += add_numbers
def restaurant_study():
# 习题9-1
restaurant = Restaurants("restaurant", "little")
print(restaurant.restaurant_name)
print(restaurant.cuisine_type + "\n")
restaurant.describe_restaurant()
restaurant.open_restaurant()
# 习题9-2
restaurant1 = Restaurants("restaurant1", "little")
restaurant2 = Restaurants("restaurant2", "middle")
restaurant3 = Restaurants("restaurant3", "big")
restaurant1.describe_restaurant()
restaurant2.describe_restaurant()
restaurant3.describe_restaurant()
# 习题9-4
restaurant = Restaurants('restaurant', 'little')
print('There are ' + str(restaurant.number_served) + " people served")
restaurant.number_served = 100
print('There are ' + str(restaurant.number_served) + " people served")
restaurant.set_number_served(500)
print('There are ' + str(restaurant.number_served) + " people served")
restaurant.increment_number_served(500)
print('There are ' + str(restaurant.number_served) + " people served")
# 习题9-3 9-5
class Users():
"""创建user类"""
# 习题9-3
def __init__(self, first_name, last_name, gender, age):
self.first_name = first_name
self.last_name = last_name
self.gender = gender
self.age = age
# 习题9-5
self.login_attempts = 0
# 习题9-3
def describe_user(self):
print("The user's name is " + self.first_name + " " + self.last_name)
print("The user's age is " + str(self.age))
print("The user's gender is " + self.gender)
# 习题9-3
def greet_user(self):
print("Hello, " + self.first_name + " " + self.last_name)
# 习题9-5
def increment_login_attempts(self):
self.login_attempts += 1
# 习题9-5
def reset_login_attempts(self):
self.login_attempts = 0
def user_study():
# 习题9-3
user1 = Users("Qingcai", "Chen", "man", 24)
user2 = Users("Xiao", "Wang", "man", 23)
user3 = Users("Jin", "Xuan", "woman", 24)
user1.describe_user()
user1.greet_user()
print("\n")
user2.describe_user()
user2.greet_user()
print("\n")
user3.describe_user()
user3.greet_user()
# 习题9-4
user4 = Users('Wenqiao', 'Li', 'man', 25)
user4.increment_login_attempts()
print(user4.login_attempts)
user4.increment_login_attempts()
print(user4.login_attempts)
user4.increment_login_attempts()
print(user4.login_attempts)
user4.reset_login_attempts()
print(user4.login_attempts)
# 教材9.2教程代码
class Cars():
"""创建cars类"""
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self.odometer_readimg = 0
def get_descriptive_name(self):
long_name = str(self.year) + " " + self.make + " " + self.model
return long_name.title()
def read_odometer(self):
print("This car has " + str(self.odometer_readimg) + " miles on it.")
def update_odometer(self, mileage):
"""
将里程表读数设置为指定的值
禁止将里程表往回调
"""
if mileage >= self.odometer_readimg:
self.odometer_readimg = mileage
else:
print("Your can't roll back an odometer!")
def increment_odometer(self, miles):
self.odometer_readimg += miles
def car_study():
my_new_car = Cars("audi", "a4", 2016)
print(my_new_car.get_descriptive_name())
my_new_car.read_odometer()
my_new_car.odometer_readimg = 10 # 直接修改属性
print(my_new_car.get_descriptive_name())
my_new_car.read_odometer()
my_new_car.update_odometer(50) # 使用方法修改属性
my_new_car.read_odometer()
print('\n')
my_used_car = Cars("subaru", 'outback', 2013)
print(my_used_car.get_descriptive_name())
my_used_car.update_odometer(23500)
my_used_car.read_odometer()
my_used_car.increment_odometer(100)
my_used_car.read_odometer()
# 使用哪一部分去掉前面的#即可
if __name__ == "__main__":
dog_study()
# restaurant_study()
# user_study()
# car_study()
【Python】2021.12.10《Python编程从入门到实践》例题习题学习记录
最新推荐文章于 2024-04-05 18:20:34 发布