class User():
def __init__(self,first,last,sex,age):
self.first_name=first
self.last_name=last
self.sex = sex
self.age =age
self.login_attempts = 0
def describe_users(self):
print(self.first_name + " " +self.last_name)
print("Gender: " + self.sex)
print("Age: " + str(self.age))
def greeting_users(self):
print("Welcome, " + self.first_name + " " + self.last_name + "!\n")
def increment_login_attempts(self):
self.login_attempts += 1
print("Login attempts: " + str(self.login_attempts))
def reset_login_attempts(self):
self.login_attempts = 0
print("Login has been reset")
class Privileges():
def __init__(self,privileges):
self.privileges= ['can add post','can delete post', 'can ban user']
def show_privileges(self):
for x in self.privileges:
print("The Admin can " + x)
class Admin(User):
def __init__(self,first,last,sex,age):
"""Initialize attributes of the parent class"""
super().__init__(first,last,sex,age)
self.privileges = Privileges()
person_admin= Admin('Kevin','Mark','M',30)
person_admin.Privileges.show_privileges()所以我在解决这个问题上遇到了困难。我一直收到error Typeerror。想知道你们中是否有人知道问题出在哪里?这个问题的目标是在"Admin“类中创建一个"Privileges”实例作为属性。之后,创建"Admin“的新实例,并使用"show_privileges”显示其权限。
发布于 2017-09-27 07:03:59
确切的错误可能是这样的:
Traceback (most recent call last):
File "python", line 42, in <module>
File "python", line 40, in __init__
TypeError: __init__() missing 1 required positional argument: 'privileges'这是因为您已经为Privileges编写了需要一个参数的构造函数,但在Admin的构造函数中实例化Privileges时没有传递该参数。只需将Privileges的构造函数更改为:
def __init__(self): # removed argument "privileges"
self.privileges = ['can add post','can delete post', 'can ban user']然后,在最后一行,您将希望Privileges小写,因为您引用的是实例而不是类。
person_admin.privileges.show_privileges()您可以查看working code here。
https://stackoverflow.com/questions/46436964
复制相似问题