python编程从入门到实践第九章习题

    第九章介绍的是类,因为和C的类还是有些区别的,所以还是有一点难度的。类的基本格式为:

class ClassName(object):
	"""docstring for ClassName"""
	def __init__(self, arg):
		super(ClassName, self).__init__()
		self.arg = arg
		
	def function(self):
		pass

    其中第一行的object是可有可无的,但是第三行的__init__()是类的初始化,是必须有的。而super表示继承,如果没有需要继承的类则可以省略。定义函数则除了需要的形参外,还需要添加self参数。

    子类中可以创建和父类中重名的函数来替换父类中函数的功能。

    导入类的方式和导入函数的方式是基本一样的,也没什么好讲的。


#9-1
class Restaurant(object):
	"""docstring for Restaurant"""
	def __init__(self, restaurant_name, cuisine_type):
		self.restaurant_name = restaurant_name
		self.cuisine_type = cuisine_type
	
	def describe_restaurant(self):
		print("The Restaurant\'s name is "+self.restaurant_name
				+", and its cuisine type is "+self.cuisine_type)

	def open_restaurant(self):
		print("The "+self.restaurant_name+" is opening!")

first_res = Restaurant('ford','none')
print(first_res.restaurant_name)
print(first_res.cuisine_type)
first_res.describe_restaurant()
first_res.open_restaurant()

#9-2
second_res = Restaurant('Lory','cold')
third_res = Restaurant('Marry','hot')
second_res.describe_restaurant()
third_res.describe_restaurant()

#9-3
class User(object):
	"""docstring for User"""
	def __init__(self, first_name, last_name):
		self.first_name = first_name
		self.last_name = last_name

	def describe_user(self):
		print("This is a person named " +self.first_name +" "+self.last_name)
		
	def greet_user(self):
		print("Hello, "+self.first_name+" "+self.last_name+"!")

first_person = User('Marry','Smimth')
second_person = User('John','Yel')
first_person.describe_user()
first_person.greet_user()
second_person.describe_user()
second_person.greet_user()


#9-4
class Restaurant(object):
	"""docstring for Restaurant"""
	def __init__(self, restaurant_name, cuisine_type):
		self.restaurant_name = restaurant_name
		self.cuisine_type = cuisine_type
		self.number_served = 0
	
	def describe_restaurant(self):
		print("The Restaurant\'s name is "+self.restaurant_name
				+", and its cuisine type is "+self.cuisine_type)

	def open_restaurant(self):
		print("The "+self.restaurant_name+" is opening!")

	def set_number_served(self, number):
		self.number_served = number
		print("Here is "+self.number_served.__str__()+" having dinner!")

	def increment_number_served(self, number):
		self.number_served = self.number_served + number
		print("Here now having "+self.number_served.__str__()+" people having dinner!")

first_res = Restaurant('ford','none')
print("Here is "+first_res.number_served.__str__()+" having dinner!")
first_res.number_served = 20
print("Here is "+first_res.number_served.__str__()+" having dinner!")
first_res.set_number_served(30)
first_res.increment_number_served(10)


#9-6
class IceCreamStand(Restaurant):
	"""docstring for IceCreamStand"""
	def __init__(self, restaurant_name, cuisine_type, flavors):
		#Restaurant.__init__(restaurant_name, cuisine_type)
		super(IceCreamStand, self).__init__(restaurant_name, cuisine_type)
		self.flavors = flavors

Ice = IceCreamStand('ford','hot','cold')
print(Ice.flavors)
Ice.describe_restaurant()

#9-8
from n9 import User #上面那段代码放在n9.py中
class Admin(User):
	"""docstring for Privileges"""
	def __init__(self, first_name, last_name, privileges):
		super(User, self).__init__()
		self.privileges = privileges
	def show_privileges(self):
		print(self.privileges)
		
p1 = Admin('Marry','Smimth',"can delete post")
p1.show_privileges() 


导入文件在上面测试过,这里也就不再展示。


#9-14
from random import randint

class Die(object):
	"""docstring for Die"""
	def __init__(self, sides=6):
		self.sides = sides
		
	def roll_die(self):
		x = randint(1,self.sides)
		print(x)

Player1 = Die(10)
for n in range(10):
	Player1.roll_die()
print("\n\n")
Player2 = Die(20)
for n in range(10):
	Player2.roll_die()

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值