在类

时间:2017-01-08 23:01:34

标签: python-2.7 class if-statement

我有这个脚本:

class usr:
  def __init__(self, inp):
    self.inp = inp
    if inp == "abc":
      print 0
      exit()


user_input = usr(raw_input())
if user_input == "123":
  print("1")
else:
  print("No")

但是,即使我输入“123”,输出也是“否”。 在正常情况下,我会将“abc”语句放在if中,但我需要检查多个命令的输入,所以我认为一个类是最好的选择。

1 个答案:

答案 0 :(得分:0)

当数据不像您认为的那样进行比较时,工具包中的第一个工具是print语句。只需添加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")