不知道是哪里出问题了。
报错如下:
Privileges:
- This user has no privileges.
Adding privileges...
Privileges:
Traceback (most recent call last):
File "C:\Users\82791\Desktop\python_work\第9章\privileges.py", line 49, in <module>
eric.privileges.show_privileges()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\82791\Desktop\python_work\第9章\privileges.py", line 33, in show_privileges
for privilege in privileges:
^^^^^^^^^^
NameError: name 'privileges' is not defined. Did you mean: 'privilege'?
代码如下:
class User:
"""一个表示用户的简单类。"""
def __init__(self, first_name, last_name, username, email, location):
"""初始化用户。"""
self.first_name = first_name.title()
self.last_name = last_name.title()
self.username = username
self.email = email
self.location = location.title()
class Admin(User):
"""有管理权限的用户。"""
def __init__(self, first_name, last_name, username, email, location):
"""初始化管理员。"""
super().__init__(first_name, last_name, username, email, location)
# 将权限集初始化为空。
self.privileges = Privileges()
class Privileges():
"""一个存储管理员权限的类。"""
def __init__(self, privileges=[]):
self.privileges = privileges
def show_privileges(self):
print("\nPrivileges:")
if self.privileges:
for privilege in privileges:
print(f"- {privilege}")
else:
print("- This user has no privileges.")
eric = Admin('eric', 'matthes', 'e_matthes', 'e_matthes@example.com', 'alaska')
eric.privileges.show_privileges()
print("\nAdding privileges...")
eric_privileges = [
'can reset passwords',
'can moderate discussions',
'can suspend accounts',
]
eric.privileges.privileges = eric_privileges
eric.privileges.show_privileges()