【发布时间】:2018-11-29 19:36:38
【问题描述】:
我收到attributeError,但我不明白....
class User():
def __init__(self, first, last, age):
self.first = first
self.last = last
self.age = age
self.login_attempt = 0
class Admin(User):
def __init__(self, first, last, age):
super().__init__(first, last, age)
self.privilages = Privilages()
class Privilages():
def __init__(self, privilages = ''):
self.privilages = []
def show_privilages(self):
print("There are the privilages... : ")
if self.privilages:
for privilage in self.privilages:
print("- " + privilage)
else:
print("The user has no privilages. ")
sarah.privilages = ['can add post', 'can delete post']
sarah.privilages.show_privilages()
我不确定我在这里遗漏了什么,我使用 for 循环遍历列表并将其打印出来,但是我不断收到“'list' object has no attribute 'show_privileges'”的错误
【问题讨论】:
-
您在上面的行中执行
sarah.privilages = []。sarah.privilages然后是一个列表。你的意图是什么?你的意思是sarah.privilages.privilages = [...]? -
不是您的错误的原因,而是“特权”拼写为“e”。
-
糟糕!我没有太注意拼写。不管怎样,我做了
sarah.privilages = []因为我想把值放在self.privilages = []中。你能解释一下为什么是sarah.privilages.privilages = []吗? -
@Sarah 因为您从 Admin 类对象开始,然后您访问它的属性“privileges”,即 Privileges 类,然后从该类中访问 show_privileges
标签: python list attributeerror