我对python中的OOP非常陌生,为了好玩,我创建了一个程序来区分用户和管理员
class User():
def __init__(self, first_name, last_name, gender, age, country):
"""
Description of the user
"""
self.first_name = first_name
self.last_name = last_name
self.gender = gender
self.age = age
self.country = country
self.login_attempts = 0
self.admin = Admin(privileges='')
def describe_user(self):
"""
Printing the users information, if the user is admin do not give any information
"""
if self.first_name == "Arman" and self.last_name == "Cam":
print("This information is classified")
else:
print("First Name: ", self.first_name)
print("Last Name:", self.last_name)
print("Gender:", self.gender)
print("Age:", self.age)
print("Country:", self.country)
def greet_user(self):
"""
Greeting the users
"""
if self.first_name == "Arman" and self.last_name == "Cam":
print("Hello Admin!\nWelcome to the AQT Server")
else:
print("Hello", self.first_name, "!\nWelcome to the AQT Server\n")
class Admin():
def __init__(self, privileges=''):
self.privileges = privileges
def show_privileges(self):
"""
Showing the privileges of the admin
"""
print(self.privileges)
def add_privileges(self, new_privilege):
"""
Adding a new privilege if needed
"""
self.privileges += new_privilege
user1 = User("Arman", "Cam", "Male", 20, "Canada")
user1.greet_user()
user1.describe_user()
user1.admin.add_privileges("ban user")
user1.admin.show_privileges()
现在,我想修改Admin
类中的show_privileges
方法,以便
def show_privileges(self):
"""
Showing the privileges of the admin
"""
if self.first_name == "Arman" and self.last_name == "Cam":
print(self.privileges)
else:
print("You have no privilege")
但在这种情况下,ofc的代码给了我一个错误。因为self.first_name
没有在Admin
子类中定义
为了让事情顺利进行,我可能会创建一个子类,但接下来我必须编写如下内容
user1 = Admin("Arman", "Cam", "Male", 20, "Canada")
这是我现在想要的。我希望Admin
成为User
类中的一个属性
那么,如果不使用子类方法,如何在Admin
类中添加self.first_name
?
另外,由于用户有很多参数,是否有一个快捷语法用于在其他函数中传递User
的所有参数
注:子类方法是指Admin(User)
目前没有回答
相关问题 更多 >
编程相关推荐