我正在创建一个词解析类,并在运行此命令时始终收到“ < main .Word_Parser实例位于0x1037dd3b0>的绑定方法Word_Parser.sort_word_list ”的错误:
class Word_Parser: """docstring for Word_Parser""" def __init__(self, sentences): self.sentences = sentences def parser(self): self.word_list = self.sentences.split() def sort_word_list(self): self.sorted_word_list = self.word_list.sort() def num_words(self): self.num_words = len(self.word_list) test = Word_Parser("mary had a little lamb") test.parser() test.sort_word_list() test.num_words() print test.word_list print test.sort_word_list print test.num_words
这里没有错误。您正在打印一个函数,这就是函数的外观。
要实际 调用 该函数,必须在其后放置括号。您已经在上面完成了。如果要打印调用函数的结果,只需让函数返回值,然后将打印内容放在该位置即可。例如:
print test.sort_word_list()
另一方面,如果您希望函数更改对象的状态,然后以其他方式打印状态,那也可以。
现在,您的代码似乎可以在某些地方工作,但在其他地方却不能;让我们看看原因:
parser
word_list
print test.word_list
sort_word_list
sorted_word_list
print test.sort_word_list
None
sort
num_words
(在某些情况下,乍一看似乎是个好主意-您只想计算一次,然后一次又一次地访问它而又不不断地对其进行重新计算。但这不是这样做的方法。 (使用@property或使用备注修饰符)。
@property