Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Challenge: Users Representation and Comparison | Magic Methods
In-Depth Python OOP
course content

Course Content

In-Depth Python OOP

In-Depth Python OOP

1. OOP Concepts
2. Inheritance
3. Encapsulation
4. Polymorphism and Abstraction
5. Magic Methods

bookChallenge: Users Representation and Comparison

There are many magic methods in Python, we have not considered all of them, but others are not used as often.

Let's go back to your code. Your User class hasn't representation, and you can't print user info using the print(user) construction. Also, there are moments when you need to check a username or user id with the user instance (account) that did actions in your application.

Note

  • The comments The new code is below and The new code is above will help you to find a new code for editing.
  • In addition, you need to add class attributes to the existing code.

Task

  1. Create a role class attribute with the value "User" inside the User class.
  2. Create a role class attribute with the value "Admin" inside the Admin class.
  3. Define the representation magic method inside the User class. This method should return the string "{role}: {username}".
    For example ("Admin: greatest.admin").
  4. Define the comparison magic method for the == operation. This method should compare:
    • if the taken data is a User instance - compare the instance username and the taken instance username.
    • if the taken data is a string - compare the instance username and the taken string.
    • if the taken data has another data type - method should return False.

Switch to desktopSwitch to desktop for real-world practiceContinue from where you are using one of the options below
Everything was clear?

How can we improve it?

Thanks for your feedback!

Section 5. Chapter 5
toggle bottom row

bookChallenge: Users Representation and Comparison

There are many magic methods in Python, we have not considered all of them, but others are not used as often.

Let's go back to your code. Your User class hasn't representation, and you can't print user info using the print(user) construction. Also, there are moments when you need to check a username or user id with the user instance (account) that did actions in your application.

Note

  • The comments The new code is below and The new code is above will help you to find a new code for editing.
  • In addition, you need to add class attributes to the existing code.

Task

  1. Create a role class attribute with the value "User" inside the User class.
  2. Create a role class attribute with the value "Admin" inside the Admin class.
  3. Define the representation magic method inside the User class. This method should return the string "{role}: {username}".
    For example ("Admin: greatest.admin").
  4. Define the comparison magic method for the == operation. This method should compare:
    • if the taken data is a User instance - compare the instance username and the taken instance username.
    • if the taken data is a string - compare the instance username and the taken string.
    • if the taken data has another data type - method should return False.

Switch to desktopSwitch to desktop for real-world practiceContinue from where you are using one of the options below
Everything was clear?

How can we improve it?

Thanks for your feedback!

Section 5. Chapter 5
toggle bottom row

bookChallenge: Users Representation and Comparison

There are many magic methods in Python, we have not considered all of them, but others are not used as often.

Let's go back to your code. Your User class hasn't representation, and you can't print user info using the print(user) construction. Also, there are moments when you need to check a username or user id with the user instance (account) that did actions in your application.

Note

  • The comments The new code is below and The new code is above will help you to find a new code for editing.
  • In addition, you need to add class attributes to the existing code.

Task

  1. Create a role class attribute with the value "User" inside the User class.
  2. Create a role class attribute with the value "Admin" inside the Admin class.
  3. Define the representation magic method inside the User class. This method should return the string "{role}: {username}".
    For example ("Admin: greatest.admin").
  4. Define the comparison magic method for the == operation. This method should compare:
    • if the taken data is a User instance - compare the instance username and the taken instance username.
    • if the taken data is a string - compare the instance username and the taken string.
    • if the taken data has another data type - method should return False.

Switch to desktopSwitch to desktop for real-world practiceContinue from where you are using one of the options below
Everything was clear?

How can we improve it?

Thanks for your feedback!

There are many magic methods in Python, we have not considered all of them, but others are not used as often.

Let's go back to your code. Your User class hasn't representation, and you can't print user info using the print(user) construction. Also, there are moments when you need to check a username or user id with the user instance (account) that did actions in your application.

Note

  • The comments The new code is below and The new code is above will help you to find a new code for editing.
  • In addition, you need to add class attributes to the existing code.

Task

  1. Create a role class attribute with the value "User" inside the User class.
  2. Create a role class attribute with the value "Admin" inside the Admin class.
  3. Define the representation magic method inside the User class. This method should return the string "{role}: {username}".
    For example ("Admin: greatest.admin").
  4. Define the comparison magic method for the == operation. This method should compare:
    • if the taken data is a User instance - compare the instance username and the taken instance username.
    • if the taken data is a string - compare the instance username and the taken string.
    • if the taken data has another data type - method should return False.

Switch to desktopSwitch to desktop for real-world practiceContinue from where you are using one of the options below
Section 5. Chapter 5
Switch to desktopSwitch to desktop for real-world practiceContinue from where you are using one of the options below
some-alt