今天分享的是第九章的要点和部分课后习题的参考代码。
要点:
1、类的创建和使用(class关键字和初始化函数__init__()).
2、类的属性访问和方法调用.
3、为属性提供默认值.
4、继承类的定义以及如何将继承类与父类关联起来.
5、给子类定义新属性和方法以及重写父类方法.
6、类的导入.
7、Python标准库中也有很多很好用的类.
参考代码:
9-1
class Restaurant(): def __init__(self, name, type_): self.restaurant_name = name; self.cursine_type = type_; def describe_restaurant(self): print("The name is " + self.restaurant_name + ".") print("The cuisine type is " + self.cursine_type + ".") def open_restaurant(self): print("The restaurant is open.") restaurant1 = Restaurant("KFC", "fried food") restaurant1.describe_restaurant() restaurant1.open_restaurant()
运行结果:
The name is KFC. The cuisine type is fried food. The restaurant is open. [Finished in 0.0s]
9-2(略,与9-1类似)
9-3(略,与9-1类似)
9-4
class Restaurant(): def __init__(self, name, type_): self.restaurant_name = name self.cursine_type = type_ self.number_served = 0 def describe_restaurant(self): print("The name is " + self.restaurant_name + ".") print("The cuisine type is " + self.cursine_type + ".") def open_restaurant(self): print("The restaurant is open.") def set_number_served(self, number): self.number_served = number def increment_number_served(self,number): self.number_served = self.number_served + number restaurant1 = Restaurant("KFC", "fried food") print(restaurant1.number_served) restaurant1.set_number_served(20) print(restaurant1.number_served) restaurant1.increment_number_served(2) print(restaurant1.number_served)
运行结果:
0 20 22 [Finished in 0.0s]
9-5(略,与9-4类似)
9-6
class Restaurant(): def __init__(self, name, type_): self.restaurant_name = name self.cursine_type = type_ self.number_served = 0 def describe_restaurant(self): print("The name is " + self.restaurant_name + ".") print("The cuisine type is " + self.cursine_type + ".") def open_restaurant(self): print("The restaurant is open.") def set_number_served(self, number): self.number_served = number def increment_number_served(self,number): self.number_served = self.number_served + number class IceCreamStand(Restaurant): def __init__(self,name, type_): super().__init__(name, type_) self.flavors = ["cherry", "chocolate", "tea"] def show_flavors(self): print("We have these flavors:") for flavor in self.flavors: print(flavor) ICS = IceCreamStand("KFC","fried food") ICS.show_flavors()
运行结果:
We have these flavors: cherry chocolate tea [Finished in 0.0s]
9-7(略,与9-6类似)
9-8(略,与9-6类似)
9-9(略,与9-6类似)
9-10
#test1.py class Restaurant(): def __init__(self, name, type_): self.restaurant_name = name self.cursine_type = type_ self.number_served = 0 def describe_restaurant(self): print("The name is " + self.restaurant_name + ".") print("The cuisine type is " + self.cursine_type + ".") def open_restaurant(self): print("The restaurant is open.") def set_number_served(self, number): self.number_served = number def increment_number_served(self,number): self.number_served = self.number_served + number class IceCreamStand(Restaurant): def __init__(self,name, type_): super().__init__(name, type_) self.flavors = ["cherry", "chocolate", "tea"] def show_flavors(self): print("We have these flavors:") for flavor in self.flavors: print(flavor)
from test1 import Restaurant restaurant1 = Restaurant("KFC","fried food") restaurant1.describe_restaurant() restaurant1.open_restaurant()
运行结果:
The name is KFC. The cuisine type is fried food. The restaurant is open. [Finished in 0.0s]
9-11(略,与9-10类似)
9-12(略,与9-10类似)