diff --git a/Chapter_09/9-11_imported_admin.py b/Chapter_09/9-11_imported_admin.py new file mode 100644 index 0000000..1d45429 --- /dev/null +++ b/Chapter_09/9-11_imported_admin.py @@ -0,0 +1,9 @@ +# Exercise 9-11 Imported Admin +# Learning Objective: Import multiple classes from one module. + +from administration import Users, Admin, Privileges + +george = Admin("George", "Costanza", "9/23/1959", "NY", "Black") +george.privileges.privileges = ["can add post", "can delete post", "can ban user", "can unban user", "can create user", "can delete user", "can modify site contents"] +george.describe_user() +george.privileges.show_privileges() \ No newline at end of file diff --git a/Chapter_09/__pycache__/administration.cpython-312.pyc b/Chapter_09/__pycache__/administration.cpython-312.pyc new file mode 100644 index 0000000..50314c4 Binary files /dev/null and b/Chapter_09/__pycache__/administration.cpython-312.pyc differ diff --git a/Chapter_09/administration.py b/Chapter_09/administration.py new file mode 100644 index 0000000..096cf20 --- /dev/null +++ b/Chapter_09/administration.py @@ -0,0 +1,45 @@ +class Users: + def __init__(self, first_name, last_name, dob, state, hair_color): + """Initialize User Profile variables""" + self.first_name = first_name + self.last_name = last_name + self.dob = dob + self.state = state + self.hair_color = hair_color + self.login_attempts = 0 + + def describe_user(self): + """Prints descriptions of user based on inputs""" + print(f"{self.first_name} {self.last_name} was born on {self.dob}, they live in {self.state} and they have {self.hair_color} hair") + + def greet_user(self): + """Prints personalized greeting to user specified""" + print(f"Welcome to this python program, {self.first_name} {self.last_name}!") + + def increment_login_attempts(self): + """Increments Login Attempts by one""" + self.login_attempts += 1 + + def reset_login_attempts(self): + """Resets login attempts to zero""" + self.login_attempts = 0 + +class Privileges: + def __init__(self, privileges=[]): + """Create separate class for privileges """ + self.privileges = privileges + + def show_privileges(self): + """ Print Privileges list """ + print(f"This user has the following privileges:\n") + if self.privileges: + for privilege in self.privileges: + print(f" - {privilege}") + else: + print(" - This user has no privileges.") + +class Admin(Users): + def __init__(self, first_name, last_name, dob, state, hair_color): + """ Initialize Users the add sepeicifc Admin attributes/methods """ + super().__init__(first_name, last_name, dob, state, hair_color) + self.privileges = Privileges() \ No newline at end of file