我正在制作一个可以建立用户的程序(我目前正在学习课程)。而且我可以创建两种类型的用户:User和Admin。
用户和管理员都可以使用其名字和姓氏,年龄和特权。 Admin是超类的子类,比普通用户具有更多特权。
我要做的是使普通用户成为Admin,基本上是将实例和创建的实例从User类迁移到Admin类。
我正在寻找这种问题,但找不到。
"""docstring for User"""
def __init__(self, first_name, last_name, age, location):
self.first_name = first_name
self.last_name = last_name
self.age = age
self.location = location
self.privileges = [
'can add post', 'can remove their post', 'can change their icon'
]
def describe_user(self):
print(f"First name: {self.first_name}")
print(f"Last name: {self.last_name}")
print(f"Age: {self.age}")
print(f"Location: {self.location}")
def greet_user(self):
print(f"Hello, {self.first_name} {self.last_name}, good to see you!")
def show_privileges(self):
print("Privileges:")
for privilege in self.privileges:
print(f"- {privilege}")
class Admin(User):
"""docstring for Admin"""
def __init__(self, first_name, last_name, age, location):
super().__init__(first_name, last_name, age, location)
self.privileges = [
'can add post', 'can remove post', 'can ban user', 'can lock post'
]
def show_privileges(self):
print("Privileges:")
for privilege in self.privileges:
print(f"- {privilege}")
kaya = User('Kaya', 'Y', 20, 'Chicago')
jon = Admin('Jon', 'K', 17, 'NY')
jon.greet_user()
jon.describe_user()
jon.show_privileges()
print('\n')
kaya.greet_user()
kaya.describe_user()
kaya.show_privileges()
我将如何使kaya成为管理员?
EDIT_0:我要移动实例,而不是方法。
EDIT_1:我想添加
kaya.make_admin()
这将为实例kaya提供更多特权。