【HW】书本9-11至9-16选题代码和输出
2018-04-02 10:59
134 查看
9-3 用户 :创建一个名为User 的类,其中包含属性first_name 和last_name ,还有用户简介通常会存储的其他几个属性。在类User 中定义一个名为describe_user() 的方法,它打印用户信息摘要;再定义一个名为greet_user() 的方法,它向用户发出个性化的问候。创建多个表示不同用户的实例,并对每个实例都调用上述两个方法。(把User存在user.py上)
from user import User
user0 = User('lily','Green','female',20)
user1 = User('mark','kim','male',19)
user2 = User('joyce','potter','female',10)
users = [user0,user1,user2]
for user in users:
user.describe_user()
user.greet_user() 输出:
9-5尝试登录次数:在为完成练习9-3而编写的User类中,添加一个名为login_attempts的属性。编写一个名为increment_login_attempts()的方法,它将属性login_attempts 的值加1。再编写一个名为reset_login_attempts()的方法,它将属性login_attempts的值重置为0。根据User类创建一个实例,再调用increment_login_attempts() 多次。打印属性login_attempts 的值,确认它被正确地递增;然后,调用方法reset_login_attempts(),并再次打印属性login_attempts 的值,确认它被重置为0。
9-7 管理员 :管理员是一种特殊的用户。编写一个名为Admin 的类,让它继承你为完成练习9-3或练习9-5而编写的User 类。添加一个名为privileges 的属性,用于存储一个由字符串(如"can add post" 、"can delete post" 、"can ban user" 等)组成的列表。编写一个名为show_privileges() 的方法,它显示管理员的权限。创建一个Admin 实例,并调用这个方法。
9-8 权限 :编写一个名为Privileges 的类,它只有一个属性——privileges ,其中存储了练习9-7 所说的字符串列表。将方法show_privileges() 移到这个类中。在Admin 类中,将一个Privileges 实例用作其属性。创建一个Admin 实例,并使用方法show_privileges() 来显示其权限。
9-12 多个模块 :将User 类存储在一个模块中,并将Privileges 和Admin 类存储在另一个模块(special)中。再创建一个文件,在其中创建一个Admin 实例,并对其调用方法show_privileges() ,以确认一切都依然能够正确地运行。
''' class user ''' class User(): ''' define User class to store user's info ''' def __init__(self,first_name,last_name,sex,age): self.first_name = first_name self.last_name = last_name self.sex = sex self.age = age def describe_user(self): print( self.first_name.title() + ' ' + self.last_name.title() + ' ' + str(self.age) +' ' +self.sex ) def greet_user(self): print('Hello, '+ self.first_name)# 9-3
from user import User
user0 = User('lily','Green','female',20)
user1 = User('mark','kim','male',19)
user2 = User('joyce','potter','female',10)
users = [user0,user1,user2]
for user in users:
user.describe_user()
user.greet_user() 输出:
9-5尝试登录次数:在为完成练习9-3而编写的User类中,添加一个名为login_attempts的属性。编写一个名为increment_login_attempts()的方法,它将属性login_attempts 的值加1。再编写一个名为reset_login_attempts()的方法,它将属性login_attempts的值重置为0。根据User类创建一个实例,再调用increment_login_attempts() 多次。打印属性login_attempts 的值,确认它被正确地递增;然后,调用方法reset_login_attempts(),并再次打印属性login_attempts 的值,确认它被重置为0。
# 9-5 class User(): ''' define User class to store user's info ''' def __init__(self,first_name,last_name,sex,age): self.first_name = first_name self.last_name = last_name self.sex = sex self.age = age self.login_attempts = 0 def describe_user(self): print( self.first_name.title() + ' ' + self.last_name.title() + ' ' + str(self.age) +' ' +self.sex ) def greet_user(self): print('Hello, '+ self.first_name) def increment_login_attempts(self): self.login_attempts += 1 def reset_login_attempts(self): self.login_attempts = 0 user0 = User('lily','green','female',20) for i in range(0,10): user0.increment_login_attempts() print(user0.login_attempts) user0.reset_login_attempts() print(user0.login_attempts)
9-7 管理员 :管理员是一种特殊的用户。编写一个名为Admin 的类,让它继承你为完成练习9-3或练习9-5而编写的User 类。添加一个名为privileges 的属性,用于存储一个由字符串(如"can add post" 、"can delete post" 、"can ban user" 等)组成的列表。编写一个名为show_privileges() 的方法,它显示管理员的权限。创建一个Admin 实例,并调用这个方法。
# 9-7 from user import User class Admin(User): def __init__(self,first_name,last_name,sex,age): super().__init__(first_name,last_name,sex,age) self.privileges = 'can add post' def show_privileges(self): print(self.privileges) admin = Admin('lily','green','female',20) admin.show_privileges()
9-8 权限 :编写一个名为Privileges 的类,它只有一个属性——privileges ,其中存储了练习9-7 所说的字符串列表。将方法show_privileges() 移到这个类中。在Admin 类中,将一个Privileges 实例用作其属性。创建一个Admin 实例,并使用方法show_privileges() 来显示其权限。
# 9-8 '''stroe class User in user.py ''' from user import User class Privileges(): def __init__(self): self.privileges = 'can add post' def show_privileges(self): print(self.privileges) class Admin(User): def __init__(self,first_name,last_name,sex,age): super().__init__(first_name,last_name,sex,age) self.privileges = Privileges() admin = Admin('lily','green','female',20) admin.privileges.show_privileges()
9-12 多个模块 :将User 类存储在一个模块中,并将Privileges 和Admin 类存储在另一个模块(special)中。再创建一个文件,在其中创建一个Admin 实例,并对其调用方法show_privileges() ,以确认一切都依然能够正确地运行。
# 9-12 from special import Admin,Privileges admin = Admin('lily','green','female',20) admin.privileges.show_privileges()
相关文章推荐
- 【HW-3】书本3-1至3-11的选题,代码和输出
- 【HW-2】书本2-1至2-11中的选题,代码及输出
- 【HW】书本8-1至8-17选题,代码和输出
- 【HW】5-1至5-11的选题和代码和输出
- 【HW】书本6-1至6-13选题和代码
- 【HW】书本7-1至7-10选题,代码和输入输出
- HDU ACM 11 2076 夹角有多大(我的代码是AC不过去的、、但我还是要放,毕竟输出都对)
- [nRF51822] 11、基础实验代码解析大全 · 实验16 - 内部FLASH读写
- 原题为 C++#面试每日一题#(16):运行下图中代码,输出的结果是什么?
- 60}的C程序 高手帮忙写下`` 46 35 27 21 16 10 9 5 然后输出数组a。已知 int a[11]={1 使数组a仍然有序 将x插入到有序整型数组a中 由键盘输入一个整数x
- 【HW】4-1到4-13的选题,代码
- Ruby进行文件信息输出实例代码
- C++ 输出代码所在的文件、行数以及函数名称
- 海外优秀资讯抢先看11:Android的Inbox如何做到70%代码能跨Android/iOS/Web 平台的秘密武器
- 给定一个源代码文件(.cs, .java),输出该文件的总行数、空行数、注释行数、代码行数
- 在32位小端的机器上,如下代码输出是什么:
- 使 Modelmaker 输出全部代码注释的设置
- C++ 输出代码所在的文件、行数以及函数名称
- Qt下的OpenGL 编程(11)Qt实例hellogl代码解析