"""《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()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)