【以下回答由 GPT 生成】
首先,代码中有一个问题是 Admin 类的构造函数 __init__()
没有传递 privileges
参数给 Privileges 类的构造函数。在 Admin 类的 __init__()
中需要将 privileges
参数传递给 self.pr
的初始化。修改代码如下:
class Admin(User):
def __init__(self, firstname, lastname, privileges):
super().__init__(firstname, lastname)
self.pr = Privileges(privileges)
admin = Admin('sdjf', 'fwr', ['can add post', 'can delete post'])
admin.pr.show_privileges()
另外,还有一个问题是在 Privileges 类的 show_privileges()
方法中使用了一个未定义的变量 self.privileges
。你需要添加一个实例变量 self.privileges
来接收传递进来的 privileges 参数。完整的修改后的代码如下:
class User:
def __init__(self, firstname, lastname):
self.firstname = firstname
self.lastname = lastname
def describe_user(self):
print(f"The user's name is {self.firstname} {self.lastname}.")
def greet_user(self):
print("Good morning!")
class Privileges:
def __init__(self, privileges):
self.privileges = privileges
def show_privileges(self):
for privilege in self.privileges:
print(privilege)
class Admin(User):
def __init__(self, firstname, lastname, privileges):
super().__init__(firstname, lastname)
self.pr = Privileges(privileges)
admin = Admin('sdjf', 'fwr', ['can add post', 'can delete post'])
admin.pr.show_privileges()
现在你应该能够成功运行代码并且显示出管理员的权限列表。
【相关推荐】