Если данные не совпадают, как вы думаете, это первый инструмент в вашем наборе инструментов - это заявление печати. Просто добавьте print user_input
, и вы найдете его экземпляр класса usr
, а не пользовательский ввод. Вы сохранили это в переменной экземпляра, которая называется inp
. В стороне, в pythnon 2, вы должны наследовать от object
, чтобы получить класс нового стиля. Вам не нужно делать это в Python 3.
class usr(object):
def __init__(self, inp):
self.inp = inp
if inp == "abc":
print 0
exit()
user_input = usr(raw_input())
if user_input.inp == "123":
print("1")
else:
print("No")
Если все, что вам нужно сделать, это проверить вход и не хранить его, функция является лучшим вариантом. Он может просто вернуть проверенную строку. Он также может использовать другие данные. В этом примере я также разбиваю пробелы спереди и сзади, поэтому игнорируются незначительные ошибки ввода.
def usr(inp):
inp = inp.strip()
if inp == "abc":
print 0
exit()
return inp
user_input = usr(raw_input())
if user_input == "123":
print("1")
else:
print("No")
Это совсем не ясно, каков ваш вопрос. Учитывая, что вы не реализуете 'usr .__ eq__', как вы можете разумно оценивать' user_input == '123''? Какой результат вы ожидаете от этого? И почему вы используете классы старого стиля (т. Е. Не наследуете от 'object', несмотря на то, что вы помечаете свой вопрос [tag: python-2.7])? – jonrsharpe
У меня нет объектов для наследования, я полагаю –
Нет, я имею в виду буквально из 'object'. Чтение, например. http://stackoverflow.com/q/54867/3001761 – jonrsharpe