9-7 管理员
1. 项目
管理员是一种特殊的用户。编写一个名为 Admin 的类,让它继承你为
完成练习 9-3 或练习 9-5 而编写的 User 类。添加一个名为 privileges 的属性,用于存
储一个由字符串(如"can add post"、 "can delete post"、 "can ban user"等)组成的
列表。编写一个名为 show_privileges()的方法,它显示管理员的权限。创建一个 Admin
实例,并调用这个方法。
2. 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | class User(): # 创建User类 def __init__( self , first_name, last_name, age, address, phone): # 属性 self .first_name = first_name self .last_name = last_name self .age = age self .address = address self .phone = phone self .login_attempts = 0 # 添加属性 def describe_user( self ): # 方法 print ( self .first_name, self .last_name, self .age, self .address, self .phone) def greet_user( self ): # 方法 print ( "How beautiful name " + self .last_name + self .last_name, "\n too young, too simple" , "your homeland " + self .address + " is a warm place, " , "could you tell me your contact?" ) def increment_login_attempts( self , number1): # 递增方法 self .login_attempts + = number1 # 值加1 print ( "共登录用户量:" + str ( self .login_attempts)) def reset_login_attempts( self , number2): # 重置方法,重置为0 self .login_attempts = 0 print ( "共登录用户量:" + str ( self .login_attempts)) # 创建Admin类 class Admin(User): # 初始化父类的属性,在初始化User特有的属性 def __init__( self , first_name, last_name, age, address, phone): super ().__init__(first_name, last_name, age, address, phone) self .privileges = [] #初始化特有属性 def show_privileges( self ): # 创建方法存储字符串 for privilege in self .privileges: print (privilege) admin = Admin( 'Kevin' , 'Hou' , 30 , 'ShangHai' , 13141516170 ) admin.describe_user() admin.privileges = [ 'can add post' , 'can delete post' , 'can ban user' ] admin.show_privileges() |
3. 执行结果
1 2 3 4 5 6 7 | D:\python编程:从入门到实践\venv\Scripts\python.exe "D:/python编程:从入门到实践/9-7 管理员.py" Kevin Hou 30 ShangHai 13141516170 can add post can delete post can ban user Process finished with exit code 0 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律