Почему не работает форма регистрации в python

Объясните почему у меня не работает эта форма так сказать регистрации для новичка. Если вбить в print(admin) , то выведет что логин admin, однако при вводе логина - admin, говорит что такого нету, в чем проблема?

Спасибо.

class Person():
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return f"{self.name}"

class Password():
    def __init__(self, password):
        self.password = password

    def __str__(self):
        return f"{self.password}"


admin = Person("admin")
adminpass = Password("admin")

login = input("Введите логин: ")
if login == admin:
    print("Такой логин есть")
else:
    print("Такого логина нету")
password = input("Введите пароль: ")
if password == adminpass:
    print("Такой пароль есть")
else:
    print("Такого пароля нету")

Ответы (1 шт):

Автор решения: CrazyElf

Определите в классах специальный метод __eq__, чтобы питон знал, как сравнивать ваши объекты со строками и между собой. На примере Person:

class Person():
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return f"{self.name}"
    
    def __eq__(self, other):
        if isinstance(other, str):
            return self.name == other
        if isinstance(other, Person):
            return self.name == other.name
        return False

Без этого метода питон просто сравнивает ссылки на объекты, получается он сравнивает ссылку на объект Person и на строку "admin", естественно, эти ссылки различаются и поэтому всегда получается False, вне зависимости, какая это строка.

→ Ссылка