python variables, classes

2019-05-23 14:19发布

问题:

Dear All, Trying to learn python, classes, and how to pass variables between. Going through a learning guide here, and am having trouble with the following Error:

TypeError: unbound method scan() must be called with lexicon instance as first argument (got str instance instead)

Can someone please help me understand this better? THANKS!!!

class lexicon (object):
  def __init__(self,data):
    self.direction = data
    self.words = data.split()

  def scan(self):
    return self.words

def main():
    stuff = raw_input('> ') 
    x = lexicon.scan(stuff)

if __name__ == '__main__':
 main()

回答1:

You have to instantiate an object of type lexicon before you can invoke one of its methods. i.e.

lex = lexicon(data)
lex.scan()


回答2:

In addition to what Jim said, self is automatically passed in for you. (And it's not required to be called self but calling it something else will just confuse yourself and other people)



标签: python class