学习Python过程中遇到的问题

img


在学习Python中的类,,试了很多遍还是不成功,但不知道到底错在哪里,求解

img

【以下回答由 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()

现在你应该能够成功运行代码并且显示出管理员的权限列表。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^