我无法识别丢失的参数

问题描述 投票:0回答:1

我正在尝试编写代码以显示对象User1的特权列表。

class User:
def __init__(self, f_name, l_name, age):
    self.f_name = f_name
    self.l_name = l_name
    self.age = age

def describe(self):
    print(f"The user {self.f_name} {self.l_name} has {self.age} years old person.")

def greet(self):
    print(f"Hi {self.f_name}, you are the Administer right now!")

class Privileges:
    def __init__(self, privileges):
        self.privileges = ['add post', 'del post', 'ban users']

    def show_privileges(self):
    print(f"These are the Admin list of privileges: {self.privileges}.")

class Admin(User):
    def __init__(self, f_name, l_name, age):
        super().__init__(f_name, l_name, age)
        self.privileges = Privileges()

user1 = Admin('Porco', 'Rosso', 42)
user1.privileges.show_privileges()

这是输出,但我找不到此缺少的参数:

    Traceback (most recent call last):
      File "C:\Users\Administrator\Desktop\python_work\teste34.py", line 25, in <module>
        user1 = Admin('Porco', 'Rosso', 42)
      File "C:\Users\Administrator\Desktop\python_work\teste34.py", line 23, in __init__
        self.privileges = Privileges()
    TypeError: __init__() missing 1 required positional argument: 'privileges'
    [Finished in 0.433s]
python
1个回答
1
投票
    self.privileges = Privileges()

不传递任何参数。

class Privileges:
    def __init__(self, privileges):

需要一个名为privileges的参数。它从来没有使用过,所以也许您只需要删除它,然后将其制成即可:

class Privileges:
    def __init__(self):
© www.soinside.com 2019 - 2024. All rights reserved.