今天分享的是第九章的要点和部分课后习题的参考代码。
要点:
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类似)